import random
result = []
for i in list_data:
for e in list_data:
result += str(i,e)
# ======
return result
import gowithflow as gwf
a = ['a', 'b', 'c']
gwf.number_of_cases(a)
['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']
a = ['a', 'a']
gwf.number_of_cases(a)
['aa']
a = [1, 2, 3, 'a']
gwf.number_of_cases(a)
['11', '12', '13', '1a', '21', '22', '23', '2a', '31', '32', '33', '3a', 'a1', 'a2', 'a3', 'aa']
# '''我想要一个新的列表,其中包含原始列表中的每一对值。每一对值都返回为“str”格式。如果有相同的值,这两个值中的任何一个将被移除。我的代码是前半部分,下半部分是一个例子。
打印Typeerror:
不支持解码str。
发布于 2017-12-29 17:42:02
如果您给出的示例是您想要的输出,那么下面的解决方案就足够了:
list(set([str(c) + str(d) for c in a for d in a]))代码的内部部分创建所有对的列表,但不删除重复项。
[str(c) + str(d) for c in a for d in a]通过转换到集合并返回到列表,重复项将被删除。
a = ['a', 'a']输出:
['aa']第二个例子:
a = [1, 2, 3, 'a']输出:
['33', '2a', 'aa', '1a', '31', '23', '3a', '13', 'a2', 'a3', '32', '11', '21', 'a1', '12', '22']编辑:
如果订单对您很重要,并且您希望从您的示例中获得订单,您可以这样做:
def uniq(input):
output = []
for x in input:
if x not in output:
output.append(x)
return output
a = [1, 2, 3, 'a']
ordered_with_duplicates = [str(c) + str(d) for c in a for d in a]
ordered_no_duplicates = uniq(ordered_with_duplicates)输出:
['11', '12', '13', '1a', '21', '22', '23', '2a', '31', '32', '33', '3a', 'a1', 'a2', 'a3', 'aa']发布于 2017-12-29 17:45:04
您可以使用itertools.product生成对,然后使用''.join将它们变成字符串。
from itertools import product
a = [1, 2, 3, 'a']
[''.join(x) for x in product(map(str, a), repeat=2)]给我们
['11', '12', '13', '1a', '21', '22', '23', '2a', '31', '32', '33', '3a', 'a1', 'a2', 'a3', 'aa']https://stackoverflow.com/questions/48026203
复制相似问题