python - 打印人名列表,每个人的名字本身就是一个人名列表
问题描述
所以基本上,当我们输入一个列表时,比如
[['Bilbo', 'Baggins'], ['Gollum'], ['Tom', 'Bombadil'], ['Aragorn']]
进入函数,它应该在单独的行中打印出每个列表中的元素,中间有一个空格。当每个列表中的元素数量不相等时,我不知道该怎么做。
我也不允许使用任何 for 循环
这是我的代码:
def print_names2(people):
"""Print a list of people's names, which each person's name
is itself a list of names (first name, second name etc)
"""
i = 0
while i < len(people):
names = list(people[i])
j = 0
while j < len(names):
i += 1
name = names[j]
print(name, end=" ")
j += 1
print_names2([['Bilbo', 'Baggins'], ['Gollum'], ['Tom', 'Bombadil'],
['Aragorn']])
预期结果:
Bilbo Baggins
Gollum
Tom Bombadil
Aragorn
实际结果:
Bilbo Baggins Tom Bombadil
我应该对我的代码进行哪些更改?
谢谢你。
解决方案
尝试更简单的方法。
def print_names(people):
for i in people:
print (' '.join(i))
people=[['Bilbo', 'Baggins'], ['Gollum'], ['Tom', 'Bombadil'], ['Aragorn']]
print_names(people)
输出
Bilbo Baggins
Gollum
Tom Bombadil
Aragorn
不使用for
循环。
def print_names(people):
i = 0
while i < len(people):
print(' '.join(people[i]))
i += 1
people=[['Bilbo', 'Baggins'], ['Gollum'], ['Tom', 'Bombadil'], ['Aragorn']]
print_names(people)
推荐阅读
- python - 静态(类)变量中的嵌套列表理解
- java - 具有 SSL-Handshake-Exception 的 Android JavaX-Mail
- office-js - Word 加载项未出现在 Office 商店中
- jenkins - 如何将安装在 Ubunt2 wsl 上的 Jenkins 连接到互联网
- javascript - 允许增加/减少所有文本字体大小的文本控件
- macos - 如何定义 macos 用户空间 Hal 驱动程序是麦克风还是扬声器?
- flutter - 在 Visual Studio 代码中查看更改 gitlab
- logging - Spring Cloud Gateway - 禁用特定路由的日志
- javascript - Ubuntu 20.04 上 Node JS 脚本执行缓慢
- c# - 如何在会话中使用 linq 进行过滤?