- 主题:初学问个循环的问题
#letters中的元素数量不一定,但肯定是3的倍数
newletter = ["a", "b", "c", "d", "e", "f", "g", "h", "i",]
#想要的结果是每三个元素为一行
print(newletter[0],newletter[1],newletter[2])
print(newletter[3],newletter[4],newletter[5])
print(newletter[6],newletter[7],newletter[8])
a b c
d e f
g h i
--
FROM 221.1.219.190
感谢!
for i in range(int(len(newletter) / 3)):
print(newletter[3*i], newletter[3*i+1], newletter[3*i+2])
我自己的法子太笨了:
col1=[]
col2=[]
col3=[]
for x,y in enumerate(newletter):
if x%3==0:
col1.append(y)
# print(y)
if x%3==1:
col2.append(y)
# print(y)
if x%3==2:
col3.append(y)
# print(y)
# print()
for i in range(3):
print(col1[i],col2[i],col3[i])
【 在 Jangbi 的大作中提到: 】
: for i in range(len(newletter) / 3):
: print(newletter[3*i], newletter[3*i+1], newletter[3*i+2])
--
FROM 111.17.148.156
Got it
for i in range(int(len(newletter) / 3)):
print("\t".join(newletter[i::int(len(newletter)/3)]))
【 在 annals 的大作中提到: 】
: 还可以试试[::3]这个slice
--
FROM 111.17.148.156
试了这个也可以,但用csv输出时会出错
【 在 ToSimplicity 的大作中提到: 】
: >>> for i in range(len(r)):
: ... print(r[i], end=' ' if (i+1) % 3 else '\n')
: ...
: ...................
--
FROM 221.1.219.190