我有两个问题。你知道吗
第一个问题:
我想知道如何从二维问题列表中删除第二个元素和第三个元素,以便如果变量问题最初如下所示:
>>> questions
>>> [['Johny', 'Baby', 'Shaw', '1984'], ['Andrew', 'fJKC', 'cbv bv', '1975'], ['Harry', 'Jack', 'Son', '1993']]
结果是:
>>> questions
>>> [['Johny', '1984'], ['Andrew', '1975'], ['Harry', '1993']]
第二个问题:
我怎样才能找到一种方法知道两个值:(最小值,最大值),打印列表中三个列表中的任何一个,最后一个元素在范围内(最小值,最大值)。你知道吗
预期结果:
例如,在前面的结果之后,最小值是1980
,最大值是2000
。它打印以下内容:
>>> ['Johny', '1984'], ['Harry', '1993']
以下是我的尝试:
beginning = int(input('Beginning: '))
ending = int(input('Ending: '))
position = []
for anyitem in range((len(questions)-1)):
position1 = int(questions[anyitem][2][-4:])
if beginning < position1 < ending:
print(questions[anyitem][3])
else:
pass
请不要使用numpy
或任何需要导入的函数。另外,请使解决方案通用,这样它就可以应用于一个二维列表,不仅有3个元素(在我的情况下),但许多元素(每个人)。你知道吗
这两种方法都很容易使用列表理解和条件:
结果:
过滤开启年份:
结果:
请注意,当您需要临时变量/副作用时,listcomps不是最好的(如上所述:
int(x[-1])
必须计算两次,在年份的情况下,我们可以使用快捷方式并使用字符串比较,从1000年到9999年:当我们到了10000年,我会编辑我的答案:)
问题1:
问题2,假设您想使用原始的
questions
列表:两者都可以通过列表理解轻松完成。你知道吗
删除某些元素:
在这里,我们从每个子列表中解压,用
*_
去掉中间的元素,同时保留第一个和最后一个元素,以便从中创建新的列表。你知道吗对于筛选,最好创建一个自定义的^{} ,并使用另一个列表理解来筛选出
in
范围内的值:int(i[1])
是必需的,因为值是字符串。除了非常直观之外,range
对象的成员资格测试也非常有效(参见:Why is "1000000000000000 in range(1000000000000001)" so fast in Python 3?)。你知道吗相关问题 更多 >
编程相关推荐