Python 如何解压缩以下嵌套元组列表的前值?
如何仅获取每个元组的第一个元素并将其重新格式化为:Python 如何解压缩以下嵌套元组列表的前值?,python,python-3.x,pandas,list-comprehension,Python,Python 3.x,Pandas,List Comprehension,如何仅获取每个元组的第一个元素并将其重新格式化为: >>>lis = df['col'].values.tolist() >>>lis = [[(('A', 'WE'), ('1,21', 'rr'), ('io', 'mp'))], [(('B', 'WE'), ('5', 'rr'), ('io', 'mp'))], [(('A', 'WE'), ('3', 'rr'), ('io', 'mp')), (('C'
>>>lis = df['col'].values.tolist()
>>>lis = [[(('A', 'WE'), ('1,21', 'rr'), ('io', 'mp'))],
[(('B', 'WE'), ('5', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('3', 'rr'), ('io', 'mp')),
(('C', 'WE'), ('0', 'rr'), ('io', 'mp'))],
....
[(('D', 'WE'), ('6', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('9.0', 'rr'), ('io', 'mp'))]]
我已准备好:
[[A, 1,21, io],
[B, 5, io],
[A, 3, io],
[C, 0, io],
....
[D, 6, io],
[A, 9.0', io]]
及
及
及
更新
熊猫栏如下所示:
new_lis, _ = zip(*lis[0][0])
return ' '.join(new_lis)
你可以试试这个:
Col
0 [(('A', 'WE'), ('1,21', 'rr'), ('io', 'mp'))]
1 [(('B', 'WE'), ('5', 'rr'), ('io', 'mp'))]
2 [(('A', 'WE'), ('3', 'rr'), ('io', 'mp'))
3 [(('C', 'WE'), ('0', 'rr'), ('io', 'mp'))]
....
n [(('D', 'WE'), ('6', 'rr'), ('io', 'mp'))]
n-1 [(('A', 'WE'), ('9.0', 'rr'), ('io', 'mp'))]
虽然可读性不强,但它能满足你的需要
更新
如果要获得字符串列表,可以使用以下代码:
new_list = [[nested[0] for nested in sub_l] for l in lis for sub_l in l]
print(new_list)
[['A', '1,21', 'io'],
['B', '5', 'io'],
['A', '3', 'io'],
['C', '0', 'io'],
['D', '6', 'io'],
['A', '9.0', 'io']]
你可以试试这个:
Col
0 [(('A', 'WE'), ('1,21', 'rr'), ('io', 'mp'))]
1 [(('B', 'WE'), ('5', 'rr'), ('io', 'mp'))]
2 [(('A', 'WE'), ('3', 'rr'), ('io', 'mp'))
3 [(('C', 'WE'), ('0', 'rr'), ('io', 'mp'))]
....
n [(('D', 'WE'), ('6', 'rr'), ('io', 'mp'))]
n-1 [(('A', 'WE'), ('9.0', 'rr'), ('io', 'mp'))]
虽然可读性不强,但它能满足你的需要
更新
如果要获得字符串列表,可以使用以下代码:
new_list = [[nested[0] for nested in sub_l] for l in lis for sub_l in l]
print(new_list)
[['A', '1,21', 'io'],
['B', '5', 'io'],
['A', '3', 'io'],
['C', '0', 'io'],
['D', '6', 'io'],
['A', '9.0', 'io']]
输出:
lis = [[(('A', 'WE'), ('1,21', 'rr'), ('io', 'mp'))],
[(('B', 'WE'), ('5', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('3', 'rr'), ('io', 'mp')),
(('C', 'WE'), ('0', 'rr'), ('io', 'mp'))],
[(('D', 'WE'), ('6', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('9.0', 'rr'), ('io', 'mp'))]]
print [list(next(zip(*tup))) for subl in lis for tup in subl ]
输出:
lis = [[(('A', 'WE'), ('1,21', 'rr'), ('io', 'mp'))],
[(('B', 'WE'), ('5', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('3', 'rr'), ('io', 'mp')),
(('C', 'WE'), ('0', 'rr'), ('io', 'mp'))],
[(('D', 'WE'), ('6', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('9.0', 'rr'), ('io', 'mp'))]]
print [list(next(zip(*tup))) for subl in lis for tup in subl ]
完成后,您希望它看起来是什么样子?例如,只需使用逗号@emettspeer分隔的第一个值,您就可以发布
df['col']
的外观了吗?使用pandas应该有一种更简单的方法来提取它。如果你只是想把它变成一个字符串'.join(map(str,map(str,x))
你想让它看起来像什么?举个例子,只要把第一个值用逗号@EmettSpeerCan分隔,你就可以发布什么df['col']
看起来像什么?应该有一种更简单的方法来提取熊猫。如果你只是想把它变成一个字符串“”。加入(map(str,map(str,x))
谢谢你的帮助!。。。然而,我得到了每个元组的第一个字母和第二个字母:对于('A','WE'),('1,21','rr'),('io','mp')
我得到了:('A',W')
@tumbleweed好的,现在试试。谢谢!。。。但我也有同样的问题!然后考虑根的解。下次在您的问题中提供df.head()
以快速解决问题。不要使用list(list(iterator)[0])
使用list(Next(iterator))
谢谢您的帮助!。。。然而,我得到了每个元组的第一个字母和第二个字母:对于('A','WE'),('1,21','rr'),('io','mp')
我得到了:('A',W')
@tumbleweed好的,现在试试。谢谢!。。。但我也有同样的问题!然后考虑根的解。下次在你的问题中提供df.head()
,以便快速解决问题。不要使用list(list(iterator)[0])
使用list(Next(iterator))
这个方法确实有效。但是,我无法执行''。请加入(新列表)
以删除方括号。。。我怎么能扔掉它们?@我在回答中加了风滚草这个确实有效。但是,我无法执行''。请加入(新列表)
以删除方括号。。。我怎样才能扔掉它们?@我在答案中加上了风滚草
lis = [[(('A', 'WE'), ('1,21', 'rr'), ('io', 'mp'))],
[(('B', 'WE'), ('5', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('3', 'rr'), ('io', 'mp')),
(('C', 'WE'), ('0', 'rr'), ('io', 'mp'))],
[(('D', 'WE'), ('6', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('9.0', 'rr'), ('io', 'mp'))]]
print [list(next(zip(*tup))) for subl in lis for tup in subl ]
[['A', '1,21', 'io'],
['B', '5', 'io'],
['A', '3', 'io'],
['C', '0', 'io'],
['D', '6', 'io'],
['A', '9.0', 'io']]