我已经编写了大约两周的脚本,并且刚学会了从文件中读取文件。
我想要做的是从原始列表中获取所有其他条目并将其存储在新列表中。这是最好的方法吗?
with open("test.txt",mode="r") as myfile:
File = myfile.read().splitlines()
Username = []
for i in range (len(File)):
if File.index(File[i])%2 == 0 or File.index(File[i]) == 0:
Username.append(File[i])
print(Username)
请记住,到目前为止我只学习了大约十个小时的Python - 我很高兴这似乎有效。
答案 0 :(得分:5)
至少有几种方法可以用更少的代码完成同样的事情。
Python有一种迭代数组slice notation的每个第n个元素的方法。您可以使用以下行替换整个循环
Username.extend(File[0::2])
这基本上意味着从索引2
开始抓取每个0
nd元素并将其添加到Username
数组。
range()
函数您还可以使用range()
功能的不同版本,它允许您指定开始,结束和步骤,以便列出。
for i in range(0, len(File), 2):
Username.append(File[i])
range()
函数已记录在案here。
答案 1 :(得分:1)
您可以使用list comprehension:
<强> input_file
强>
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
<强>的Python:强>
>>> with open("input_file") as f:
... alternates = [line for i, line in enumerate(f) if not i % 2]
...
>>> alternates
['Line 1\n', 'Line 3\n', 'Line 5\n', 'Line 7\n', 'Line 9\n']