猿问

将空格分隔的列表压缩成元组

我有一个数据框df,其中有一列称为columnListstr。


"1 2,7 8,10 7"

然后我将它们转换为一个列表,如下所示:


[1 2,7 8,10 7]

我想将列表中的值转换为元组:


[(1,2),(7,8),(10,7)]

当前代码:


temp = df['columnList'].str.split(',')

result = list(zip(temp[::2], temp[1::2]))

print(result)

我得到空列表。


df看起来像这样:


column1    columnList

  YY      1 2,7 8,10 7

名称:df,数据类型:对象


繁星coding
浏览 116回答 3
3回答

肥皂起泡泡

此处不需要使用zip,只需遍历列表,拆分每个元素并将其存储为元组即可。l = [ '1 2', '7 8', '10 7'][tuple(int(i) for i in numbers.split()) for numbers in l]#[(1, 2), (7, 8), (10, 7)]

交互式爱情

试试这个,df.columnsList.apply(lambda x :          [tuple(map(int, x.split())) for x in "1 2, 7 8, 10 7".split(",")])输出,0    [(1, 2), (7, 8), (10, 7)] Name: columnsList, dtype: object

慕斯709654

您可以将字符拆分后映射到整数,然后将映射对象转换为元组:temp = df['columnList'].str.split(',')result = [tuple(map(int, num.split())) for num in temp]print(result)# [(1, 2), (7, 8), (10, 7)]
随时随地看视频慕课网APP

相关分类

Python
我要回答