我想将一个Excel文件的列连接到另一个Excel文件的其他4列。
这是代码:
Array1 = []
Arraytest1 = []
Arraytest2 = []
with open('file.txt', 'r') as f:
for line in f:
List1 = line.split('\t')[:4]
List2 = line.split('\t')[10]
Arraytest1.append(List1)
Arraytest2.append(List2)
Arraytest1.extend(Arraytest2)
print 'Array 1 :', Arraytest1
我在输出中看到的是:
数组1:[['A','B','C','D'],['E']]
数组1:[['A','B','C','D'],'E',['X1','X1','X1','X1'],'E',Y1]
但是我是什么样的:
阵列1:['A','B','C','D','E']
阵列1:['X1','X1','X1','X1','Y1']
阵列1:['X2','X2','X2','X2','Y2']
以此类推..我将感谢您的帮助
List1 = line.split('\t')[:4]
使得List1
已经列表。
Arraytest1.append(List1)
正在将该列表放入ArrayTest1中,认为 ArrayTest1 = [[List1's contents]]
然后,在扩展它时,将其展平一次,但是有一个嵌套列表,这就是为什么看到结果的原因。
尝试:
List1 = line.split('\t')[:4]
List2 = line.split('\t')[10]
Arraytest1.extend(List1)
Arraytest2.extend(List2)
Arraytest1.extend(Arraytest2)
print 'Array 1 :', Arraytest1
或者,您可以将其替换为:
Arraytest1 += List1
Arraytest2 += List2
我确定您知道,但是append
将对象添加到列表中,extend
并在iterable中添加了每个对象。
附加:
x = [1,2,3]
x.append([4,5])
#x is now [1,2,3,[4,5]]
延长
x = [1,2,3]
x.append([4,5])
#x is now [1,2,3,4,5]
x.append(1) #throws error
Split返回一个列表...但是有时如果您只想分割一个字符串,则将其强制转换。
x = "hello"
x = x.split()
#x is now ['hello']
x = "hello"
x = list(x)
#x is now ['h', 'e', 'l', 'l', 'o']
拆分句子通常是split的工作,Python中的字符串是可迭代的,因此您只需将其转换为列表即可将其拆分为每个字符。我想那就是你想要的
编辑:根据您的评论,这是一个for循环问题:
随着for循环的进行,您要追加添加到列表中,但是似乎每次循环时都需要一个新列表。您并没有将列表替换为干净的列表,而是每次都附加到列表上。尝试更换:
Arraytest1.extend(List1)
Arraytest2.extend(List2)
也:
Arraytest1 = List1[:]
Arraytest2 = List2[:]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句