python-3.x - 如何使用 if 语句在 while 循环中附加值
问题描述
records = [["chi", 20.0],["beta", 50.0],["alpha", 50.0]]
a = len(records)
i = 0
b = []
while i < a:
print(records[i][1])
b.append(records[i][1])
i = i + 1
print(b)
c = len(b)
#from previous question
unique_list = []
for el in b:
if el not in unique_list:
unique_list.append(el)
else:
print ("Element already in the list")
print(unique_list)
second_lowest_score = unique_list[1]
print(second_lowest_score)
names_list = []
g = 0
while g < a:
if records[g][1] == second_lowest_score:
names_list.append(records[g][0])
g = g + 1
print(names_list)
我想要做的是将具有第二低分数(50)的记录的名称附加到names_list。但是,while 循环没有给我任何结果。没有语法错误,所以我不确定我的代码为什么错误。但是,当我使用前面的 while 循环附加数字时,它似乎工作正常。不能在while循环中使用if语句吗?
解决方案
这是一个非常简单的问题。如果语句没有运行,变量不会增加,因此循环将在相同的值上无休止地g
继续。if
g
解决此问题的方法是将增量移到g
if 语句之外(但仍在 while 循环中)。这样,即使它们不符合if
条件,它也会继续过去的值。
if records[g][1] == second_lowest_score:
names_list.append(records[g][0])
g = g + 1
推荐阅读
- gcc - 如何从 gcc 隐藏单个头文件
- python - Pandas df.style.bar 同时保持舍入
- angular - 为什么动态创建的(SVG)矩形组件只出现在 DOM 中而不出现在视图中?
- php - Cakephp 从 3.6.16 升级到 4.2 rector 命令不起作用 bin/cake upgrade rector --rules phpunit80 C:\Apache24\htdocs\Techno\tests
- javascript - 访问函数外的 JSON response.status (Axios)
- python - a[:,:,0] 和 a[:][:][0] 之间的差异
- c# - 将鼠标指针移到原始图像上时如何找到它所属的文件?
- amazon-web-services - 如何在 AWS Athena 中用 0 填充空值
- git - 拉分支后Git子模块更新
- cockroachdb - CockroachDB:为什么删除速度会随着时间的推移而变慢?