Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops - Fatal编程技术网

python-循环和比较逻辑中的问题

python-循环和比较逻辑中的问题,python,loops,Python,Loops,我的python循环逻辑有问题。我在一个输入文件中读取了如下内容: 我的预期输出是这样的。我需要用完全相同的元音匹配所有输入。顺序不重要 我得到的是: 下面是我的for循环的代码: #split line into key and value next_key_found, value = line.split('\t') #sort key alphabetically next_key_found = sorted(next_key_found) next_ke

我的python循环逻辑有问题。我在一个输入文件中读取了如下内容:

我的预期输出是这样的。我需要用完全相同的元音匹配所有输入。顺序不重要

我得到的是:

下面是我的for循环的代码:

  #split line into key and value
  next_key_found, value = line.split('\t')
 
  #sort key alphabetically
  next_key_found = sorted(next_key_found)
  next_key_found = ''.join(next_key_found)
  
  # If current key  = next key add 1 tot vowel total
  if current_key_being_processed == next_key_found:
        vowel_total = vowel_total + int(1)

  # trying to account for key being a space here     
  if current_key_being_processed != next_key_found:
       vowel_total = 0   
       if next_key_found is not None:
             current_key_being_processed = next_key_found
             vowel_total = vowel_total + int(1)             
  else:
       # if key change add key. Add vowel total to dict. Zero out total and set current to next             
       if current_key_being_processed:
           current_key_being_processed = ''.join(sorted(current_key_being_processed))            
           vowel_dict[current_key_being_processed] = vowel_total
           vowel_total = 0 
           current_key_being_processed = next_key_found

我正在试图找出我的逻辑哪里出了问题。

似乎您的代码可以通过先处理所有行,然后输出每个排序字符串的结果和来简化:

行=[
“\t1”,
“\t1”,
“eoe\t1”,
“oe\t1”,
“oe\t1”,
“ooe\t1”
]
计数={}
对于行中的行:
键,值=line.split('\t')
键=“”。连接(已排序(键))
计数[键]=计数。获取(键,0)+int(值)
对于键,计数中的值。项()
打印(f'{key}\t{value}')
输出:

    2
eeo 1
eo  2
eoo 1

请提供可复制的样本数据,而不是张贴图片。请提供预期的(MRE)。显示中间结果与您预期的不同之处。我们应该能够复制和粘贴一个连续的代码块,执行该文件,并再现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和期望的输出来测试我们的建议。删除
输入
过程;硬编码您的测试用例。请注意,由于未定义的符号,您发布的代码无法运行。我认为这将起作用。我如何从命令行读取输入文件-我是否会对sys.stdin:@JimRyan中的行执行类似的操作:对于sys.stdin:@JimRyan中的行,您将以与当前完全相同的方式循环(您说您发布的代码用于“我的for循环”),所以只需将循环开始处的部分保持原样即可。谢谢!!@JimRyan别担心,我很高兴能帮上忙。