Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打印出重复的python_Python_Python 3.x - Fatal编程技术网

打印出重复的python

打印出重复的python,python,python-3.x,Python,Python 3.x,在将列表分为数字和非数字之后,我无法从列表中找出所有重复项。请告知我做错了什么 问题是,如果给我的是两条记录而不是3条记录,下面的引用就会产生结果 for x in good: x = sorted(x) if good.count(x) > 1: good_dups.append(x) Listy.txt-外部数据源 1,3,2,3 2,4,5,6 2,3,1 2,3,1 1,2,3 1,3,4,5 3,,4,5,6 1, 2, 3, 4. ., 123, 213, 1

在将列表分为数字和非数字之后,我无法从列表中找出所有重复项。请告知我做错了什么

问题是,如果给我的是两条记录而不是3条记录,下面的引用就会产生结果

for x in good:
 x = sorted(x)
  if good.count(x) > 1:
  good_dups.append(x)
Listy.txt-外部数据源

1,3,2,3
2,4,5,6
2,3,1
2,3,1
1,2,3
1,3,4,5
3,,4,5,6
1,  2,  3,  4. .,
123, 213, 12, ,
12. 122. 321  
13 32  167
列表

通过检查列表是否为数字,将列表分为好的和错的

for n in content:
  n = n.split(',')
  if [k for k in n if not k.isdigit()]:
    wrong.append(n)
  else:
good.append(n)

print(("There are: "), len(good), ("error lines"))
for i, val in enumerate(good):
  print('Error Syntax', *val, sep=" ")
print()

print(("There are: "), len(good), ("correct lines"))
for i, val in enumerate(good):
  print('Error Syntax', *val, sep=" ")
print()
以良好的方式打印出副本的数量 以错误的方式打印出副本的数量 为什么它不起作用 您编写的以下代码将无法工作

good = [[1, 2, 3], [2, 3, 1]]
good_dups = []

for x in good:
    x = sorted(x)
    if good.count(x) > 1:
        good_dups.append(x)

print(good_dups) # []
您正在计算列表的已排序副本在
good
中的数量,但如果原始子列表未排序,
list.count
将找不到它们

解决方案 您可能需要使用排序的元组作为键来比较子列表,并在
dict
defaultdict
中跟踪它们

from collections import defaultdict

good = [[1, 2, 3], [2, 3, 1], [2, 3, 4]]
good_dups = defaultdict(list)

for x in good:
    good_dups[tuple(sorted(x))].append(x)

print(dict(good_dups)) # {(1, 2, 3): [[1, 2, 3], [2, 3, 1]], (2, 3, 4): [[2, 3, 4]]}

重复项是列表长度为两个或两个以上的条目。

这似乎是个问题。你的实际预期产出是多少?可能有一个更短的方法来实现它。我想打印出1,2,3三次。或者说在好的副本中有3个副本。您如何定义副本?1、2、3和2、3 1是否重复?请显示所需样本输入的所需输出。首先,我想检查每行是否包含仅为数字的列表,没有特殊符号分隔,并将其分为正确和错误。然后我想在那些(好的,错的)中找到重复的。考虑重复项:2,3,12,3,1,2,3
 for x in good:
 x = sorted(x)
 if good.count(x) > 2:
 good_dups.append(x)


print("There are: ", len(good_dups), " duplicates among CORRECT lines:")
for i, val in enumerate(good_dups):
  print('Error Syntax', *val, sep=" ")


print()
good = [[1, 2, 3], [2, 3, 1]]
good_dups = []

for x in good:
    x = sorted(x)
    if good.count(x) > 1:
        good_dups.append(x)

print(good_dups) # []
from collections import defaultdict

good = [[1, 2, 3], [2, 3, 1], [2, 3, 4]]
good_dups = defaultdict(list)

for x in good:
    good_dups[tuple(sorted(x))].append(x)

print(dict(good_dups)) # {(1, 2, 3): [[1, 2, 3], [2, 3, 1]], (2, 3, 4): [[2, 3, 4]]}