python - 取决于列表长度的替代字母
问题描述
我想列出名称并打印它们,以便每个名称前面都有一个字母。
例如:
a : John
b : Sam
d : Fiona
etc...
我设法做到了这一点:
import string
player_names = ['John', 'Sam', 'Nami', 'Zoro', 'Luffy', 'Kaiden', 'Usopp', 'FRANKY', 'Gaien', 'Ichigo', 'Izumi', 'Rukia', 'Yagami', 'Goku', 'Jessy', 'Heisenberg', 'Nami', 'Robin', 'Sunny', 'Sanji', 'Kirito', 'Bebop', 'Duffy', 'Luster', 'Yugi', 'Haitham', 'Jamal']
#print (len(player_names))
#print(len(string.ascii_lowercase))
chars_names = [char + ' : ' + player_name for char, player_name in zip(string.ascii_lowercase, player_names)]
print('\n'.join(chars_names))
但是正如你所看到的,因为 ASCII_lowercase 的长度是 26,我们有 27 个名字;该姓氏不会被打印出来。
我想继续使用第 26 个名称之后的每个后续名称,并为其列出一个双字母。
例如:
a: John
b: Sam
.....
aa: Lamis
ab: Sandy
等等...
你能告诉我我该怎么做吗?
解决方案
您可以创建一个包含所有 ascii 可能性的更长列表:
import string
player_names = ['John', 'Sam', 'Nami', 'Zoro', 'Luffy', 'Kaiden', 'Usopp', 'FRANKY', 'Gaien', 'Ichigo', 'Izumi', 'Rukia', 'Yagami', 'Goku', 'Jessy', 'Heisenberg', 'Nami', 'Robin', 'Sunny', 'Sanji', 'Kirito', 'Bebop', 'Duffy', 'Luster', 'Yugi', 'Haitham', 'Jamal']
keys = list(string.ascii_lowercase)
for i in range(len(player_names) // 26):
keys += [string.ascii_lowercase[i] + c for c in string.ascii_lowercase]
chars_names = [char + ' : ' + player_name for char, player_name in zip(keys, player_names)]
print('\n'.join(chars_names))
输出:
a : John
b : Sam
c : Nami
d : Zoro
e : Luffy
f : Kaiden
g : Usopp
h : FRANKY
i : Gaien
j : Ichigo
k : Izumi
l : Rukia
m : Yagami
n : Goku
o : Jessy
p : Heisenberg
q : Nami
r : Robin
s : Sunny
t : Sanji
u : Kirito
v : Bebop
w : Duffy
x : Luster
y : Yugi
z : Haitham
aa : Jamal
推荐阅读
- python - 沿轴使用 numpy nanmean / nanmax / nanmin 的问题
- android - 谷歌地图 - 显示折线的交通
- php - 有没有办法确保结果显示在刀片模板上?
- c - 删除行时文本文件中的特殊字符
- jenkins - Jenkins - 预构建事件
- html - 使用标记来引用外部 CSS 文件不起作用,我做错了什么?
- perl - perldoc 显示“在 Pod 中找不到任何可加载的格式化程序类”错误?
- javascript - Ag-Grid 树状结构基于验证将 cellClass 附加到 NodeChildren 单元格
- python - 搜索嵌套字典并记录步骤
- java - 得到 0 输出而不是正确的输出