Python 将多个数组值更改为一个值

Python 将多个数组值更改为一个值,python,arrays,Python,Arrays,我是编程新手(使用python),有一个简单的问题。 我有一个包含不同元素的列表 tegn = ["a", "b", "c"] 还有另一份名单 guess = ["a", "c", "c"] 我希望猜测列表更改为[“a”、“a”、“a”]。我的尝试是: guess[-2:] = tegn[0] 但这使得它[“a”,“a”],从而删除了一个元素。如何在不删除元素的情况下执行此操作 编辑: 在这个程序中,猜测列表将发生很大的变化,因为我正在使用蛮力方法来猜测字符串。因此,猜测将是[“a”]、[

我是编程新手(使用python),有一个简单的问题。 我有一个包含不同元素的列表

tegn = ["a", "b", "c"]
还有另一份名单

guess = ["a", "c", "c"]
我希望猜测列表更改为[“a”、“a”、“a”]。我的尝试是:

guess[-2:] = tegn[0]
但这使得它[“a”,“a”],从而删除了一个元素。如何在不删除元素的情况下执行此操作

编辑:


在这个程序中,猜测列表将发生很大的变化,因为我正在使用蛮力方法来猜测字符串。因此,猜测将是[“a”]、[“b”]、[“c”]所在的位置[“a”、“a”]、[“a”、“b”]等等

您可以使用列表切片重新分配值:

guess = ["a", "c", "c"]

guess[1:] = ["a" for i in range(guess.count("c"))]
输出:

['a', 'a', 'a']
如果出于某种原因,您使用的代码和获取嵌套列表略有不同:

import itertools

new_list = list(itertools.chain.from_iterable(guess))
编辑:

您可以使用
itertools.product
创建
[“a”、“b”、“c”]
的所有可能配对的列表:


可以使用列表切片重新指定值:

guess = ["a", "c", "c"]

guess[1:] = ["a" for i in range(guess.count("c"))]
输出:

['a', 'a', 'a']
如果出于某种原因,您使用的代码和获取嵌套列表略有不同:

import itertools

new_list = list(itertools.chain.from_iterable(guess))
编辑:

您可以使用
itertools.product
创建
[“a”、“b”、“c”]
的所有可能配对的列表:

这是你想要的吗

for i in xrange(len(guess)):
    guess[i] = tegn[0]
迭代guess中的元素并将其更新为tegn的第一个元素

编辑:

您可以在for循环中指定条件,表示希望
i
的值从1到整个数组:

start = 1
end = len(guess)
new_value = tegn[0]
for i in xrange(start, end):
    guess[i] = new_value
这是你想要的吗

for i in xrange(len(guess)):
    guess[i] = tegn[0]
迭代guess中的元素并将其更新为tegn的第一个元素

编辑:

您可以在for循环中指定条件,表示希望
i
的值从1到整个数组:

start = 1
end = len(guess)
new_value = tegn[0]
for i in xrange(start, end):
    guess[i] = new_value

您可以使用itertools在给定长度内迭代tegn的所有可能乘积

from itertools import product

tegn = ["a", "b", "c"]
length = 3 # all products up to 3 characters long
for i in range(1, length + 1):
  for j in product(tegn, repeat=i):
    guess = list(j)
    print(guess)
# prints ['a'], ['b'], ['c'], ['a', 'a'], ['a', 'b'] etc.

希望这有帮助

您可以使用itertools在给定长度内迭代tegn的所有可能乘积

from itertools import product

tegn = ["a", "b", "c"]
length = 3 # all products up to 3 characters long
for i in range(1, length + 1):
  for j in product(tegn, repeat=i):
    guess = list(j)
    print(guess)
# prints ['a'], ['b'], ['c'], ['a', 'a'], ['a', 'b'] etc.


希望这有帮助

guess=[tegn[0]for uuuin tegn]
?你能解释一下让你想把gess变成
[“a”,“a”,“a”]
的模式吗?因为从你的解释来看,最好的解决方案似乎是
guess=[“a”,“a”,“a”]
我正在用蛮力方法来猜字符串。查看编辑
guess=[tegn[0]for uuuin-tegn]
?你能解释一下让你想把gess变成
[“a”,“a”,“a”]
的模式吗?因为从你的解释来看,最好的解决方案似乎是
guess=[“a”,“a”,“a”]
我正在用蛮力方法来猜字符串。查看编辑这将在我的列表中生成一个列表。例如,我的代码中的一个点猜测列表将是[“a”,“c”],而您的代码将变成[“a”[“a”]],这将不适用于其他代码code@Bassusour这很奇怪。我在Python2和Python3中测试了这个解决方案,得到了一个完全平坦的列表。但是,我添加了一个方法,即使您得到嵌套列表,也可以使用该方法。如果您更详细地解释猜测列表更改的原因,您可能会找到一个更可靠的解决方案。我正在使用蛮力方法创建一个应该猜测其输入的方法。意思猜测变为a、b、c,然后是aa、ab、ac,然后是ba、bb、bc等等。代码的这一部分是最后缺少的部分OK可能有更好的解决方案,使用三级计数系统,在这种情况下,只有字符a、b和c?这将在我的列表中生成一个列表。例如,我的代码中的一个点猜测列表将是[“a”,“c”],而您的代码将变成[“a”[“a”]],这将不适用于其他代码code@Bassusour这很奇怪。我在Python2和Python3中测试了这个解决方案,得到了一个完全平坦的列表。但是,我添加了一个方法,即使您得到嵌套列表,也可以使用该方法。如果您更详细地解释猜测列表更改的原因,您可能会找到一个更可靠的解决方案。我正在使用蛮力方法创建一个应该猜测其输入的方法。意思猜测变为a、b、c,然后是aa、ab、ac,然后是ba、bb、bc等等。这部分代码是最后缺失的部分OK可能有更好的解决方案,使用三次计数系统,在这种情况下,只有字符a、b和c?我只想更改最后两个值。第一个值不会长时间保持“a”,因此此解决方案不会修复长运行时的代码。我只想更改最后两个值。第一个值不会长时间保持“a”,因此从长远来看,此解决方案不会修复代码