你如何比较python中列表中的两个相邻元素?如何在进行for循环时保存或存储该项的值?我试图不使用zip方法,只是使用普通的for循环。
comparing_two_elements = ['Hi','Hello','Goodbye','Does it really work finding longest length of string','Jet','Yes it really does work']
longer_string = ''
for i in range(len(comparing_two_elements)-1):
if len(prior_string) < len(comparing_two_elements[i + 1]):
longer_string = comparing_two_elements[i+1]
print(longer_string)
答案 0 :(得分:0)
下面的工作原理只是将列表的第一个元素“保存”为最长的元素,因为它将是您第一次循环遍历列表,然后在后续迭代中将比较该项目的长度与列表中下一个项目的长度。
longest_element = None
for element in comparing_two_elements:
if not longest_element:
longest_element = element
continue
if len(longest_element) < len(element):
longest_element = element
如果你想走“有趣”的路线,你可以结合其他功能去做,例如
length_map = map(len, comparing_two_elements)
longest_index = length_map.index(max(length_map))
longest_element = comparing_two_elements[longest_index]
答案 1 :(得分:0)
对step
使用第三个可选的range
参数 - 并且不要从len(...)中减去1
!你的逻辑是不完整的:如果一对字符串中的第一个字符串更长怎么办?在这种情况下,你什么都不做。
我们不清楚你要做什么。这个for
循环遍历i
= 0,2,4 ......直至但不包括len(comparing_two_elements)
(假设为偶数!),并打印每个相邻对的较长时间:
for i in range(0, len(comparing_two_elements), 2):
if len(comparing_two_elements[i]) < len(comparing_two_elements[i + 1]):
idx = i
else:
idx = i + 1
print(comparing_two_elements[idx])
这可能不完全符合您的要求,但正如一些人所观察到的那样,目前还不清楚这是什么。至少它是你可以推理和适应的东西。
如果你只想要序列seq
中最长的字符串,那么整个相邻对的rigamarole是没有意义的;只需使用:
longest_string = max(seq, key=len)