使用python选择行的第一个元素

2024-10-02 02:41:14 发布

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

我在用python选择行的第一个元素时遇到了一些问题。 我有一个txt文件,其中的数据是这样组织的:

0  3  546
1  2  435
2  4  900
22 3  384

我想打印第一个成员与列表中的第一个成员匹配的行:

^{pr2}$

我试过这样做:

for i in externalFile: 
   if i[0] in myList:
       print (i)

但我又想起:

1  2  435
2  4  900
22 3  384

因为我想它会在myList的“22”和外部文件的“2”之间找到匹配。有人知道怎么解决这个问题吗?在


Tags: 文件数据intxt元素列表forif
3条回答

这应该行得通。逐行阅读文件,检查第一个单词是否在列表中并打印出来。在

lst = [1, 22] 
with open('file.txt') as f:
    for line in f:
        words = line.split()
        if int(words[0]) in lst:
            print(line)

# 1  2  435
# 22 3  384                                                 

使用str.split按空格分隔行。然后比较

例如:

myList = [1, 22]
with open(filename, "r") as infile:
    for line in infile:
        val = line.split()
        if int(val[0]) in myList:
            print(line.strip())

输出:

^{pr2}$

尝试下面的解决方案,我只是做了一个简单的列表理解,我将文件的每一行按' '分割,得到它的第一个元素,并检查它是否以myList的任何元素开头,如果是,则将其剥离,使'\n'不在字符串中

myList = [1, 22]
with open('test.txt') as f:
    print([i.strip() for i in f.readlines() if int(i.split(' ')[0]) in myList])

输出:

^{pr2}$

如果你想让它像你想要的那样显示,试试下面的代码

^{3}$

输出:

1  2  435
22 3  384

相关问题 更多 >

    热门问题