![](/img/trans.png)
[英]Read each line of a text file and then split each line by spaces in python
[英]How to Read text file each line after space in python
现在我得到了这样的文本文件
Mary Apple
Tom Pear
Harry Banana
..
我期望的是:
x = [ry, m, rry, ...]
c = [Apple, Pear, Banana, ...]
如何将水果放入列表 c 并将名称(仅从第三个字母开始)放入列表 x?
这是我的代码,但它不起作用
with open("file.txt") as f:
data = f.readlines()
for i in data:
x = (i.split()[0])
for i in data:
c = (i.split()[1])
你不能同时得到ry
和om
和rry
。 就像你可以通过使用切片[2:]
来ry
m
一样。 您当前的输入和 output 逻辑没有意义。 但是,您可以尝试以下操作:
x = []
c = []
with open("file.txt") as f:
data = f.readlines()
for i in data:
x.append(i.split()[0][2:]) #ry, m, rry
c.append(i.split()[1])
print(x,c)
您也可以使用列表理解,但这只会导致您返回两个循环。 我建议为此使用字典:
with open("file.txt") as f:
data = f.readlines()
values = {i.split()[0]:i.split()[1] for i in data}
print(values)
# Output: {'Mary': 'Apple', 'Tom': 'Pear', 'Harry': 'Banana'}
就这样做:
with open("file.txt") as f:
data = f.readlines()
x = []
c = []
for i in data:
line = i.split()
x.append(line[0][2:])
c.append(line[1])
顺便说一句,它的[ry, m, rry]
om
来自Tom
的。
with open("file.txt") as f:
lines = f.read().splitlines()
x = []
c = []
for line in lines:
data = line.split(" ")
name = data[0]
fruit = data[1]
c.append(fruit)
if len(name) < 4:
x.append(name[len(name) // 2:])
else:
x.append(name[2:])
print(x) # ['ry', 'om', 'rry']
print(c) # ['Apple', 'Pear', 'Banana']
看起来@TheMyth 几乎明白了,但没有清除尾随换行符\n
的结果。 编辑:没关系,@TheMyth 是对的。
以下实现了这一点:
x = []
c = []
with open("file.txt") as f:
data = f.readlines()
for i in data:
x.append(i.split(' ')[0][2:])
for i in data:
a = i.split(' ')[1]
c.append(a.split('\n')[0])
print(x)
print(c)
Output:
['ry', 'm', 'rry']
['Apple', 'Pear', 'Banana']
希望有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.