Python 管理列表中的整数
我有两个类似的列表:Python 管理列表中的整数,python,list,Python,List,我有两个类似的列表: [2005[4,5,6,7],2006[4,5,6,4] [7, 6] 第一个列表:年份之后是一个新的值列表,2005包含值4、5、6和7。 第二个列表:包含第一个列表中列表中的最大值 问题: 每年输出,然后是每个值,str表示“本地最大值”和“所有时间最高值”。例如,就我而言: 2005 4 5 6 7 (local max)(all time high) 2006 4 5 6 (local max) 4 我被
[2005[4,5,6,7],2006[4,5,6,4]
[7, 6]
第一个列表:年份之后是一个新的值列表,2005包含值4、5、6和7。第二个列表:包含第一个列表中列表中的最大值 问题: 每年输出,然后是每个值,str表示“本地最大值”和“所有时间最高值”。例如,就我而言:
2005
4
5
6
7 (local max)(all time high)
2006
4
5
6 (local max)
4
我被困在这里了,我尝试了一些不同的方法,但我不知道如何真正比较这些值,然后给它附加一个字符串。我想我需要将我的值转换成字符串才能附加文本
解决方案:
再次为缺乏信息/努力的主题感到抱歉。我将知道如何提出我的解决方案,希望其他新手,比如我自己,能从我的经验中学到一些东西
A = [2005, [4, 5, 6, 7], 2006, [4, 5, 6, 4]]
B = [7, 6]
all_years = A[::2]
while n < all_years - 1:
for month_list in A[1::2]:
k = 0
print(all_years[n])
for every_month in month_list:
k += 1
attr = ''
if every_month == max(month_list):
attr = '(local max)'
if every_month == max(B):
attr += '(all time high)'
print("""")
n += 1
A=[2005[4,5,6,7],2006[4,5,6,4]]
B=[7,6]
所有年=A[::2]
而n<所有年份-1:
对于[1::2]中的月份列表:
k=0
打印(所有年[n])
对于每月列表中的每个月:
k+=1
属性=“”
如果每个月=最大值(月列表):
属性='(本地最大值)'
如果每个月==最大值(B):
attr+='(一直处于高位)'
打印(“”)
n+=1
您可以使用zip
功能,以及一些巧妙的列表切片,以一种非常干净的方式完成这项工作
A = [2005, [4, 5, 6, 7], 2006, [4, 5, 6, 4]]
B = [7, 6]
global_max = max(B)
for year, year_list, max_year in zip(A[::2], A[1::2], B):
print year
for year_val in year_list:
if year_val == global_max:
print year_val, "(local max) (global max)"
elif year_val == max_year:
print year_val, "(local max)"
else:
print year_val
A[::2]
只需从第一项开始,在A
列表中每隔一项获取一次A[1::2]
也会这样做,但从第二项开始zip
只是创建一个新的列表,我们可以使用它来获取它们之间的对应关系。您尝试了什么?“询问代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、为什么它们不起作用以及预期的结果。另请参见:。”嗨,和appologies。下一次我将完全遵循这一指南。我将至少回答是什么解决了我的问题以及我是如何做到的。嗨,谢谢你的回答。因为我使用的是Python3.x,并且还试图学习使用基本工具,所以我不想使用这个zip函数。解决我问题的是切片法。事实上,这对我来说相当令人沮丧,但我发现很难记住所有不同的功能;看看我可以在哪里为不同的领域使用不同的工具。