python - 两个列表的乘积,仅在一个列表上轮换
问题描述
我想获得这是一个输出:
['xa' , 'yb' , 'zc']
['xb' , 'yc' , 'za']
['xc' , 'ya' , 'zb']
这是我的尝试,但它不起作用:
list1 = ['a','b','c']
list2 = ['x','y','z']
size = len(list1)
for j in range(size):
for i in range(size):
n = list1[(i+j)%size]
for k,l in enumerate(list2):
list2[k] = list2[k] + n
print(list2)
如何获得所需的输出?
解决方案
假设您想要字符串作为输出,您只需要 2 个嵌套循环,运行i
并j
最多size
:
>>> [[list2[j] + list1[(i+j)%size] for j in range(size)] for i in range(size)]
[['xa', 'yb', 'zc'], ['xb', 'yc', 'za'], ['xc', 'ya', 'zb']]
推荐阅读
- javascript - 如何在 Ruby on Rails 中测试 JS 私有方法而不更改任何代码
- mysql - 无法使用 PlanetHoster 服务器连接到 Sails 中的 MySQL
- sql - 如何在同一张表的两个不同列中选择匹配的记录?
- python - 将相同的值与 Python 中的字典列表组合起来
- java - 错误:由以下原因引起:android.database.sqlite.SQLiteException:“添加”附近:语法错误(代码 1):
- java - ReactJS/Javascript:提交时未更新状态
- python - 如果有多个条件python
- python - 为什么我的 while 命令不起作用?
- spring - Spring Cloud Stream @StreamListener 自定义 MappingJackson2MesageConverter
- docker - 是否是正常的 docker daemon 在短时间内杀死/重新启动容器?