我想打印出文本列,我试图通过for循环来做到这一点。我试过用这个:
a = 0
while a<58:
for x in Char[a],Numb[a]:
print (x)
a+=2
但是这会在不同的行上打印出两个值。是否有任何方法可以打印出来,如下所示:
A 1
B 2
C 3
D 4
E 5 ...etc
答案 0 :(得分:1)
a = 0
while a<58:
print Char[a], Numb[a]
a+=2
或者如果您愿意,可以添加一些格式以使其成为固定宽度:
a = 0
while a<58:
print '{0:3} {1}'.format(Char[a], Numb[a])
a+=2
也许还有点清洁:
for a in xrange(0,58,2):
print '{0:3} {1}'.format(Char[a], Numb[a])
答案 1 :(得分:1)
您可以使用enumerate
和for
循环:
>>> import string
>>> for i,j in enumerate(string.ascii_uppercase,1) :
... print j,'\t',i #in python 3 print (j,'\t',i)
...
A 1
B 2
C 3
D 4
E 5
F 6
G 7
H 8
I 9
J 10
K 11
L 12
M 13
N 14
O 15
P 16
Q 17
R 18
S 19
T 20
U 21
V 22
W 23
X 24
Y 25
Z 26
答案 2 :(得分:1)
一些评论:
zip
a, b = (1, 2)
)\t
(选项卡的ASCII符号)。作为代码,它看起来像这样:
import string
chars = string.ascii_uppercase
digits = string.digits
for a in range(0, min(len(chars), len(digits)), 2):
for char, digit in zip(chars[a], digits[a]):
print("{0:>3} {1:>3}".format(char, digit))
{i:>n}
等格式化选项意味着:
>
:右对齐(您不需要它。您也可以<
或不做任何事。i
:元组的第i个元素n
:总共n列。这也没有必要。我通常会做类似的事情:
import string
chars = string.ascii_uppercase
digits = string.digits
headers = ["chars", "digits"]
sizes = [(len(el) + 2) for el in headers]
formatter = "{0:>" + str(sizes[0]) + "} {1:>" + str(sizes[1]) + "}"
print(formatter.format(*headers))
print("-"*(sum(sizes) + len(sizes)))
for a in range(0, min(len(chars), len(digits)), 2):
for char, digit in zip(chars[a], digits[a]):
print(formatter.format(char, digit))
给出了
chars digits
-----------------
A 0
C 2
E 4
G 6
I 8
答案 3 :(得分:0)
假设您的两个列表具有如下数据,则以下代码将执行此操作
# for python3
Char=['A', 'B', 'C', 'D', 'E'] # these lists can have as many elements as you want
Numb=[1,2,3,4,5]
for x,y in zip(Char, Numb): #zip stops when the shorter list ends
print (x +" "+ str(y) )
<强>输出强>
sh-4.2# python3 main.py
A 1
B 2
C 3
D 4
E 5