我有一个字符串加密算法,它将输入的字符串转换成字符串列表。输出应该是每个列表元素的第一个字母(这里是字符串)。 下面列表1中的示例
输出应该是“tir hsy ia st” 以及 列表2输出应为“tir hsy iat sto”
但对于我所使用的代码,只有当每个列表元素(这里的字符串)包含相同数量的字母时,它才能打印输出,否则(在列表1的情况下)会引发“字符串索引超出范围”
这里的ceil表示每个列表元素中的字母数
如何以所示的方式打印list1的输出? p、 我是python的初学者
list1=['this','isat','ry']
list2=['this','isat','ryto']
我的代码打印输出
for elem in range(ceil):
for i in range(len(list1)):
if list1[elem][i]:
print(list1[i][elem],end='')
print(end=' ')
我猜如果
i
不是list[elem]
的成员,你会认为if list[elem][i]
是假的,但它不是这样做的。相反,Python尝试检查该值是否真实,当那里根本没有值时,就会进入IndexError
不管怎样,与其三思而后行,不如请求原谅而不是允许:
如果您喜欢“三思而后行”变体,那么检查索引是否存在的正确方法是
我假设列表的第一个元素总是有最大长度,所以我们只是在外循环中循环这个元素
您真正缺少的只是检查元素是否足够长以避免值错误。我还添加了内联代码来生成我假设的ceil
您可以改用
itertools.zip_longest
:这将输出:
相关问题 更多 >
编程相关推荐