例如,我有一个这样的列表:
AD= ['3,7', '6,7', '17,16', '16,23', '9,10']
我希望将每个字符串转换为整数,而不是摆脱它们成对的事实。所以我不想让它变成:
AD= [3, 7, 6, 7, 17, 16, 16, 23, 9, 10]
我已经尝试了以下但是它没有工作:
for i in AD:
val= i.split(",")
for j in val:
j= map(int, j)
答案 0 :(得分:1)
简单如下:
>>> [ tuple(map(int, x.split(','))) for x in AD ]
=> [(3, 7), (6, 7), (17, 16), (16, 23), (9, 10)]
这样可以保留pair
作为list of tuples
的需要。
在这里,我们将根据分隔符list
浏览splitting
,','
字符串,然后将值转换为tuple
后将它们转换为int
1}}。
答案 1 :(得分:0)
你可以试试这个:
import itertools
AD= ['3,7', '6,7', '17,16', '16,23', '9,10']
final = list(map(int, itertools.chain.from_iterable([b.split(",") for b in AD])))
输出:
[3, 7, 6, 7, 17, 16, 16, 23, 9, 10]
如果您想保留原始配对:
import re
AF=['0.27, 0.56', '0.24, 0.06', '0.44, 0.35']
final_data = [tuple(map(float, re.split(",\s*", i))) for i in AF]
输出:
[(0.27, 0.56), (0.24, 0.06), (0.44, 0.35)]
答案 2 :(得分:0)
一个值得信赖的函数,虽然它不会处理逗号后面的转换和空格后的空格。
def pairize_inplace(iterable, splitter=','):
for i in range(len(iterable)):
iterable[i] = str(iterable[i].split(splitter))