首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解压以下嵌套元组列表的前一个值?

如何解压以下嵌套元组列表的前一个值?
EN

Stack Overflow用户
提问于 2017-01-05 18:33:18
回答 2查看 87关注 0票数 0
代码语言:javascript
复制
>>>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'))]]

如何只获取每个元组的第一元素并将其重新格式化为:

代码语言:javascript
复制
 [[A, 1,21, io],
 [B, 5, io],
 [A, 3, io],
 [C, 0, io],
 ....
 [D, 6, io],
 [A, 9.0', io]]

我都准备好了:

代码语言:javascript
复制
[' '.join(map(str,lis[0][0])) for x in lis]

代码语言:javascript
复制
[' '.join(map(str,lis[0][:1])) for x in lis]

代码语言:javascript
复制
' '.join(map(str, lis))

代码语言:javascript
复制
new_lis, _ = zip(*lis[0][0])    
return ' '.join(new_lis)

更新

熊猫栏是这样的:

代码语言:javascript
复制
   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'))]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-05 18:39:07

你可以试试这个:

代码语言:javascript
复制
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']]

它不是很可读的,但它使你想要的东西。

UPDATE如果您想要一个字符串列表,可以使用以下代码:

代码语言:javascript
复制
[",".join(nested[0] for nested in sub_l) for l in lis for sub_l in l]
票数 1
EN

Stack Overflow用户

发布于 2017-01-05 18:39:56

代码语言:javascript
复制
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 ]

输出:

代码语言:javascript
复制
[['A', '1,21', 'io'],
 ['B', '5', 'io'],
 ['A', '3', 'io'],
 ['C', '0', 'io'],
 ['D', '6', 'io'],
 ['A', '9.0', 'io']]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41492225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档