使用for循环将嵌套列表分隔为自己的变量

2024-05-17 17:54:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试迭代和分离嵌套列表。 我的数据输入当前类似于

mainlist = [['1', 'HiII', '0', '1407', '0', 'Commander', '11.06.2018'], 
            ['2', 'wEEDzy', '0', '1184', '0', 'Private', '24.03.2021']]

我的目标是使用for循环将每个列表分隔为自己的列表,然后从该列表中提取特定变量,然后将其输出到文本文件。我只想提取值1、3和;每个清单上有5个

现在您已经知道了我的目标,我正在尝试使用for循环将每个列表分隔为它自己的变量,并使该列表只包含需要的3个值

这是所需的输出(每个都分配给一个变量,然后添加到一个.txt值)

['HiII', '1407', 'Commander']
['wEEDzy','1184', 'Private']

我当前的代码是:,它分隔一个列表,然后只将我想要的东西从列表中添加到列表中

member1 = list(mainlist[0])
templist = []
templist.append(member1[1])
templist.append(member1[3])
templist.append(member1[5])

我搞不懂的是如何为x个成员的每个成员执行此操作,所以我不会每次都复制和粘贴它。有人能帮忙吗


Tags: 数据目标列表for成员privatecommander文本文件
3条回答

分配给单独的变量通常是一个坏主意:您必须弄清楚如何生成和维护这些单独的变量。这就是为什么编程语言有列表、dict和其他数据结构。见this link

相反,只需将所需数据提取到新列表中,然后迭代:

templist = [[member[pos] for pos in (1, 3, 5)] for member in mainlist]

这将为您提供一个类似的嵌套列表,其中只包含所需的数据

现在打开文件,遍历templist,并以所需格式写入数据。我相信你能从那里完成

使用循环:

for member in mainlist:
    templist = [member[1], member[3], member[5]]
    # do something with templist

您可以在列表理解中使用切片表示法(在这里找到一个很好的解释:https://stackoverflow.com/a/509295/5239030),正如其他答案所示

对这种情况进行切片:在两个步骤中的步骤中从索引1开始到结束(停止)

因此,对于您的列表:

mainlist = [['1', 'HiII', '0', '1407', '0', 'Commander', '11.06.2018'], 
            ['2', 'wEEDzy', '0', '1184', '0', 'Private', '24.03.2021']]

往这边走:

tmp = [sublist[1::2] for sublist in mainlist]
#=> [['HiII', '1407', 'Commander'], ['wEEDzy', '1184', 'Private']]

既然tmp包含了已过滤的子列表,就可以将其用于您的目的

相关问题 更多 >