【问题标题】:How do I segregate data from each output line如何从每个输出行中分离数据
【发布时间】:2020-08-28 12:25:41
【问题描述】:

我从代码中获得了这些数据

list = [sno,state_name,active,positive,cured,death,new_active,new_positive,new_cured,new_death]
lol= [list]

def Extract(lol): 
    return [item[0] for item in lol] 
print(Extract(lol))

我想在这里为每个类别创建一个列表。一类用于数字,一类用于名称,一类用于第三组值,依此类推。我好像搞不懂。

[2, 'Andam', 635, 2985, 2309, 41, 602, 3018, 2374, 42]
[1, 'Andhr', 92208, 382469, 286720, 3541, 94209, 393090, 295248, 3633]
[3, 'Arunach', 987, 3555, 2563, 5, 1007, 3633, 2621, 5]
[4, 'Assama', 19535, 96771, 76962, 274, 19222, 98807, 79307, 278]
[5, 'Bira', 19823, 126714, 106361, 530, 19067, 128780, 109175, 538]
[6, 'Chandiga', 1539, 3376, 1796, 41, 1544, 3564, 1977, 43]
[7, 'Chargh', 10174, 24550, 14145, 231, 11136, 25988, 14607, 245]

【问题讨论】:

  • 你尝试了什么?
  • 我已经用我的方法编辑了它。 - 谢谢

标签: python-3.x list beautifulsoup


【解决方案1】:

一种方法是使用 enumerate() 遍历列表:

lst = [2, 'Andam', 635, 2985, 2309, 41, 602, 3018, 2374, 42]

numbers= []
state_name = []
for indx, elem in enumerate(lst):
    if indx == 0:
        numbers.append(elem)
    elif indx == 1:
        state_name.append(elem)

print(numbers)
print(state_name)

编辑

如果这是一个嵌套列表,您可以将每个元素更改为str,然后通过索引获取第一个元素:

lst = [[2, 'Andam', 635, 2985, 2309, 41, 602, 3018, 2374, 42],
[2, 'Andam', 635, 2985, 2309, 41, 602, 3018, 2374, 42],
[1, 'Andhr', 92208, 382469, 286720, 3541, 94209, 393090, 295248, 3633],
[3, 'Arunach', 987, 3555, 2563, 5, 1007, 3633, 2621, 5],
[4, 'Assama', 19535, 96771, 76962, 274, 19222, 98807, 79307, 278],
[5, 'Bira', 19823, 126714, 106361, 530, 19067, 128780, 109175, 538],
[6, 'Chandiga', 1539, 3376, 1796, 41, 1544, 3564, 1977, 43],
[7, 'Chargh', 10174, 24550, 14145, 231, 11136, 25988, 14607, 245]]

# convert it to list of str
lst_new =[[str(x) for x in lst] for lst in lst]

numbers = [x[0] for x in lst_new]
state_names = [x[1] for x in lst_new]
# print(numbers)
print([int(x) for x in numbers])  # if you want it back in `int`
print(state_names)

输出:

[2, 2, 1, 3, 4, 5, 6, 7]
['Andam', 'Andam', 'Andhr', 'Arunach', 'Assama', 'Bira', 'Chandiga', 'Chargh']

【讨论】:

  • 感谢您的回复,但是当我为第一个 state_name[0] 所有名称同时出现时,我无法获得状态列表的第二个元素。
  • 我得到一个垂直列表,不像你的水平列表。您生成的输出是我想要的,但我无法获得它。
  • @mronevsall 请分享您的垂直列表示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多