python - 如何将列表(不是 2D)顺时针旋转 90 度?
问题描述
作为 Python 的初学者,我认为我遇到的最大问题是在可以简单得多的情况下将问题过度复杂化。我还没有找到非二维列表的解决方案,因此我选择询问。
这是我正在尝试做的一个例子:
# Before
alphabet = ["ABCDEFG",
"HIJKLMN",
"OPQRSTU"]
# After
rotated_alphabet = ["OHA",
"PIB",
"QJC",
"RKD",
"SLE",
"TMF",
"UNG"]
到目前为止我做了什么:
length_of_column = len(alphabet)
length_of_row = len(alphabet[0])
temp_list = []
x = -1
for i in range(length_of_column):
while x < length_of_row-1:
x += 1
for row in alphabet:
temp_list.append(row[x])
temp_list = temp_list[::-1]
输出
print(temp_list)
>>> ['U', 'N', 'G', 'T', 'M', 'F', 'S','L','E','R','K','D','Q','J','C','P','I','B', 'O', 'H', 'A']
我需要以所需的格式制作上面的列表。
- 我该怎么做?
- 有更简单的方法吗?
解决方案
你可以只zip
列出字符串,它会逐个字符地生成元组,然后你只需要以相反的顺序加入元组。这里只有一行:
rotated_alphabet = [''.join(list(i)[::-1]) for i in zip(*alphabet)]
推荐阅读
- python - 带条件的笛卡尔积
- kubernetes - 即使使用 restartPolicy,Kubernetes 作业也会重新启动:“从不”
- java - My Java Spring JPA query is not returning what the equivalent MySQL query is returning
- javascript - 有没有办法在javascript中合并具有相同键值对的对象数组中的值
- android - 如何从 CI 对 APK 进行测试?
- java - 实例化实现接口的类时的对象类型
- html - 您可以使用 HTML 读取/写入 Excel 文档吗?
- javascript - 使用 !important 属性删除 CSS 规则
- javascript - 事件侦听器未应用
- php - 在 Blade 视图中保留前导零