【问题标题】:how to separate value in list into a different list?如何将列表中的值分隔到不同的列表中?
【发布时间】:2021-11-01 19:59:49
【问题描述】:

这是一个列表变成一个元组列表。

tup_new_lst = [[('A', '10'), ('B', '28D'), ('C', '14')], 
              [('B', '49C'), ('C', 'T26')],
               [('A', '24K'), ('C', 'B28'), ('D', '54C')]]

这里我需要根据以下格式分离值:

A: ['10','NaN','24K']
B: ['28D','49C','NaN']
C: ['14','T26','B28']
D: ['NaN','NaN','54C'] 

在此列表中。在第二个列表中没有 A 的元组。

我已经完成了以下代码来识别 A 的代码:

 a_lst = []
 for tup_lst in tup_new_lst:
     for a in tup_lst:
        if a[0] == 'A':
           a_lst.append(a[1])
     else:
        a_lst.append('NaN')
 print(a_lst)

输出是:

 ['10', 'NaN', 'NaN', '24K', 'NaN']

想要的输出:

 ['10','NaN','24K']

请大家支持一下。

【问题讨论】:

  • 看起来你的缩进是错误的,它与for a in tup_list而不是if a[0] == 'A':匹配
  • 请您更正下面的代码

标签: list python-2.7 indexing split tuples


【解决方案1】:

如果您在列表中找到您的 reserched 元素,您可以添加一个布尔值来记录,如果在列表中找不到,则将 NaN 附加到列表中:

a_lst = []
for tup_lst in tup_new_lst:
  found = False
  for a in tup_lst:
    if a[0] == 'A':
      a_lst.append(a[1])
      found = True
  if not found:
    a_lst.append('NaN')
print(a_lst)

【讨论】:

    猜你喜欢
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多