使用python

我是python的初学者。我有一个制表符分隔的文件,我只想打印第37列,即最后一列。但是,当我运行此代码时,将打印所有数据。我的代码如下:

dicts = {}
for i in open('Book2.txt'):
    split_i = i.split('\t')
    dicts[split_i[37]] = i.rstrip()
    print(i.rstrip())
zlzed888 回答:使用python

在第4行中,rstrip()是一个字符串函数,用于删除结尾的空格,而不是抓住最后一个单词。由于split()从上一行的字符串创建了一个列表,因此您可以使用列表索引,例如split_i [-1]为列表的最右边项建立索引,或者split_i [36]从左侧获得第37个索引。 此外,这可能不是对字典的正确使用。尝试改为创建一个列表,例如:

col_37 = []                        # Empty list instead of a dict
for line in open('Book2.txt'):     # Variable 'i' named more intuitively
    split_line = line.split('\t')  # Separate the string by tabs
    col_37.append(split_line[36])  # Add the item you want to your list
print(col_37)                      # Show the data you just got
,

python中的列表为zero indexed。这意味着第一个元素的索引为0。因此对于第37列,其值为mylist[36]。由于您需要最后一列,因此有一个快捷方式mylist[-1],该快捷方式始终返回列表的最后一个元素。

for line in open('Book2.txt'):
    print(line.split('\t')[-1])

List comprehension是处理更简单的for loop的更简洁,更Python化的方法:

lines = open('Boot2.txt')
col = [line.split('\t')[-1].rstrip() for line in lines]
print("\n".join(col))
本文链接:https://www.f2er.com/2673379.html

大家都在问