【发布时间】:2019-04-05 17:32:50
【问题描述】:
我目前正在 python 中试验列表,并试图创建一个程序来模拟名称游戏(click here for refrence)。
程序要求用户输入并生成一个包含用户名每个字母的列表。但是,它必须生成 3 个新名称,每个名称都以“b”、“f”、“m”开头。这是我遇到问题的地方。附加到 master_list 并稍后打印我的结果时,我得到了输出:
[['m', 'o', 'b', 'e', 'r', 't'], ['m', 'o', 'b', 'e', 'r', 't'],
['m', 'o', 'b', 'e', 'r', 't']]
当用户输入 =“罗伯特”时
这是我的代码:
# Asks for user name
user_name = input("Enter name here: ")
name = list(user_name)
# Create an empty list that will contain a subsets of lists.
master_list = []
# List containing the first letter of each new name
beginning_of_word = ["b", "f", "m"]
# Creates 3 new names and appends them to master_list
for var in beginning_of_word:
new_list = name
new_list.pop(0)
new_list.insert(0, var)
print(new_list)
master_list.append(new_list)
if new_list != name:
new_list = name
打印 master_list 时的预期输出应该是:
[['b', 'o', 'b', 'e', 'r', 't'], ['f', 'o', 'b', 'e', 'r', 't'],
['m', 'o', 'b', 'e', 'r', 't']]
有人知道为什么会这样吗?
【问题讨论】:
标签: python for-loop nested-lists