使用 for 循环和列表推导比较列表

咀嚼

我有一个文本文件,我在其中输入特定的 6 位代码来检查它们是否在主文本文件中。

文本文件如下所示:

'MAIN.txt'
4d5x1x  spongebob
2c4b66  bonk
svx123  patrick

'input.txt'
2c4b66

为了查找值 'input.txt' 是否在 'MAIN.txt' 中,我使用了以下代码:

list1 = list()
list2 = list()

with open('input.txt', 'r') as f:
    _input = [value[:6] for value in f]

with open('MAIN.txt') as ff:
    for line in ff:

        # for loop
        for x in _input:
            if x == line[:6]:
               list1.append(x)

        # list comprehension
        list2 = [k for k in _input if k == line[:6]]

输出:

list1  - ['2c4b66']
list2  - []
_input  - ['2c4b66']

为什么列表理解没有捕获任何价值?

深渊

您可能打算编写以下代码:

with open('input.txt', 'r') as f:
    _input = [value[:6] for value in f]

list1 = []
list2 = []
with open('MAIN.txt') as ff:
    for line in ff:

        # for loop
        for x in _input:
            if str(x) == str(line[:6]):
               list1.append(x)

        # list comprehension
        list2.append([k for k in _input if k == line[:6]])

print(list1)
print(list2)
print(_input)

在这里,我将list1都设置list2为空列表并.append()在循环中的适当时间调用

输出:

['2c4b66']
[[], ['2c4b66'], []]
['2c4b66']

这显示了如何list2捕获2c4b66仅匹配第二行的事实MAIN.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用For循环比较和删除列表项

如何使用列表推导比较和删除嵌套列表的第二个元素?

在列表推导中使用groupby()和filter

使用循环和条件语句比较列表中的项目

在列表推导中使用“或”

使用列表推导代替两个for循环

使用嵌套循环比较列表中的元素

使用map和concat将列表推导转换为定义

在iloc,isna(),sum()和if语句中使用列表推导

在python中使用推导表示创建列表和字典

使用列表推导删除对称对(在列表推导中使用notin)

使用Python中的列表和字典通过数字比较优化循环效率

使用列表推导从元组列表创建矩阵

使用列表推导生成字典列表的问题

使用列表推导创建阶乘列表

使用列表推导创建嵌套列表

使用列表推导返回新列表

使用列表推导生成的函数列表

使用列表推导从字典创建词典列表

使用列表比较和更新CSV文件

使用.join()和列表推导将前缀连接到列表中的每个单词

如何使用列表推导式将整数和小数保存到每个列表中?

在python中使用for循环和嵌套列表

使用循环和列表检查值 - Python

在列表推导中可以使用嵌套的for循环的根本原因是什么

在Python中,使用列表推导或for-each循环会更好吗?

使用 2 个 for 循环进行列表推导,给出太多要解包的值

使用函数调用转换嵌套的 for 循环并将数据附加到列表推导式

如何使用python将此函数/ for循环转换为列表推导或更高阶函数?