Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何解压缩以下嵌套元组列表的前值?_Python_Python 3.x_Pandas_List Comprehension - Fatal编程技术网

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']]