python-循环和比较逻辑中的问题
我的python循环逻辑有问题。我在一个输入文件中读取了如下内容: 我的预期输出是这样的。我需要用完全相同的元音匹配所有输入。顺序不重要 我得到的是: 下面是我的for循环的代码: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
#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别担心,我很高兴能帮上忙。