【发布时间】:2018-07-03 13:55:19
【问题描述】:
给定 2 个数字列表:
real_solutions_sols1 = [-53.2909210236, -8.31658000998, 1.87689837129, 1.4]
real_solutions_sols2 = [-21.1439685227, -19.2]
我希望使用相同的代码来重写列表,以便它们包含介于 0.1 和 4.0 之间的数字:
real_solutions_sols1 = [ 1.87689837129, 1.4]
对于第二个列表,这是不可能的,所以我希望代码返回完整的列表:
real_solutions_sols2 = [-21.1439685227, -19.2]
以下代码适用于real_solutions_sols2:
real_roots_zero_to_four = []
for i in real_solutions_sols2:
if (i >= 0.1) and (i <= 4.0):
real_roots_zero_to_four.append(i)
else:
real_roots_zero_to_four = real_solutions_sols2
print 'real_roots_zero_to_four = ', real_roots_zero_to_four
if 条件不满足,所以我们跳转到else 语句。
real_roots_zero_to_four = [-21.14396852, -19.2]
但是,对于第一个列表,它会无限循环:
real_roots_zero_to_four = []
for i in real_solutions_sols1:
if (i >= 0.1) and (i <= 4.0):
real_roots_zero_to_four.append(i)
else:
real_roots_zero_to_four = real_solutions_sols1
print 'real_roots_zero_to_four = ', real_roots_zero_to_four
我不知道为什么会这样
【问题讨论】:
-
@Nick A 感谢您的评论。以我的拙见,我认为这些链接不是重复的,因为如帖子中所述,将
&&替换为and后,问题仍然存在。正如 Ev 正确指出的那样。 Kounis,这是一个逻辑问题,已经在帖子标题中进行了编辑。 -
那很好,它只是一个可能的重复而不是明确的,因为我删除了评论,你似乎得到了一个很好的答案,所以没有伤害:)
标签: python list for-loop if-statement append