首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想用不同的格式排列我的列表

我想用不同的格式排列我的列表
EN

Stack Overflow用户
提问于 2015-08-20 00:14:40
回答 2查看 38关注 0票数 0

我的程序中有一个列表: grid = []

网格当前以如下格式保存字符串行:

  • 齐尔蒂
  • asdfghjk
  • zxcvbnml

我希望更改列表,以便将其格式更改为:

  • 扎克
  • 萨索
  • cde
  • vfr
  • bgt
  • 恩希
  • mju
  • lki

所以从某种意义上说,这个列表只会顺时针旋转90度。我还想将新格式化的字符串存储在一个名为diff_grid[]的不同列表中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-20 00:16:42

假设网格是您所引用的字符串的列表:

代码语言:javascript
复制
>>> grid = ["abc", "def", "xyz"]

试一试

代码语言:javascript
复制
>>> diff_grid = [''.join(i) for i in zip(*grid[::-1])]
>>> diff_grid
['xda', 'yeb', 'zfc']

zip(*grid)将在grid的字符串上应用zip运算符。请注意,由于应用zip操作的顺序,您必须反转grid (grid[::-1])

票数 0
EN

Stack Overflow用户

发布于 2015-08-20 00:21:47

使用zip(),并记住,它将从每个项目中获取第一个元素,然后是第二个元素,依此类推。

代码语言:javascript
复制
>>> strings = ['qwertyui', 'asdfghjk', 'zxcvbnml']
>>> for item in zip(*(strings[::-1])):
...     print(item)
...
('z', 'a', 'q')
('x', 's', 'w')
('c', 'd', 'e')
('v', 'f', 'r')
('b', 'g', 't')
('n', 'h', 'y')
('m', 'j', 'u')
('l', 'k', 'i')

如果您想要('q', 'a', 'z')而不是('z', 'a', 'q'),则不需要反转字符串list[::-1]

如果不希望在输出中看到tuple结构,可以使用join()或解压缩tuple并使用自定义end参数:

代码语言:javascript
复制
>>> for item in zip(*(strings[::-1])):
...     print(*item, sep='')
...
zaq
xsw
cde
vfr
bgt
nhy
mju
lki
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32107646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档