我想用不同的格式来编排我的列表

2024-09-29 02:25:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

  • qwertyui

  • asdfghjk

  • zxcvbnml公司

我想更改列表,使其格式更改为:

  • 扎克
  • xsw公司
  • cde公司
  • 变频调速
  • bgt公司
  • nhy公司
  • 美赞臣大学
  • lki公司

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


Tags: 字符串程序网格列表格式公司大学grid
2条回答

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

>>> 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'),您就不需要[::-1]来反转字符串的list

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

>>> for item in zip(*(strings[::-1])):
...     print(*item, sep='')
...
zaq
xsw
cde
vfr
bgt
nhy
mju
lki

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

>>> grid = ["abc", "def", "xyz"]

试试看

>>> diff_grid = [''.join(i) for i in zip(*grid[::-1])]
>>> diff_grid
['xda', 'yeb', 'zfc']

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

相关问题 更多 >