python - 使用 Python 在循环中生成列表组合

标签 python list

我正在尝试从列表中构建名字、姓氏组合。但是在我的循环函数中没有做到这一点。感谢一些帮助。

names = ['Appleby', 'James']
nn = ['James', 'Jim', 'Jimmy', 'Jimmie', 'Jamie', 'Jem']
combos = []
for g in nn:
    names[1] = g
    combos.append(names)
print(combos)

结果:

[['Appleby', 'Jem'],
 ['Appleby', 'Jem'],
 ['Appleby', 'Jem'],
 ['Appleby', 'Jem'],
 ['Appleby', 'Jem'],
 ['Appleby', 'Jem']]

我想实现的是:

[['Appleby', 'James'],
 ['Appleby', 'Jim'],
 ['Appleby', 'Jimmy'],
 ['Appleby', 'Jimmie'],
 ['Appleby', 'Jamie'],
 ['Appleby', 'Jem']]

最佳答案

我相信您正在寻找两个列表中名称的所有组合。 你可以用这个 -

combos = [[name, n] for n in nn for name in names]

如果您只想与“Appleby”组合。使用

combos = [[names[0], n] for n in nn]

问题出在更新 name[1] = g 时。它正在更新同一个列表,该列表在组合中被多次附加。有关更多信息,请查看 python 中的可变对象和不可变对象(immutable对象)。

关于列表+=操作符的具体信息,参见this answer .

关于python - 使用 Python 在循环中生成列表组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58586175/

相关文章:

python - 声明变量的内存与在函数调用中定义变量时的内存

python - 猜数游戏中的循环和验证

java - 创建一个原始 int 列表?

c# - 如何在列表中查找属性具有特定值或存在具有该值的相关项目的所有项目?

python - 类型错误 : search() got an unexpected keyword argument 'doc_type' for elastic search version 5. 6

python - 我们有一个相当大的 django 站点,运行性能很差,我们需要帮助查找原因

javascript - 导入 .js 文件并使用其中的定义

r - 如何从R中的字符串列表中删除元素

list - NetLogo 按特定值对代理列表进行排序

python-3.x - 按嵌套列表上的索引删除