2 回答

TA貢獻2003條經驗 獲得超2個贊
headlines = [['In bid to boost realty, state cuts stamp duty for 7 mths ', '42'],
? ? ? ? ? ? ?['India sees world’s third-biggest spike of 76,000+ cases, toll crosses 60k ','28'],
? ? ? ? ? ? ?['O', '33'],
? ? ? ? ? ? ?['Don’t hide behind RBI on loan interest waiver: SC to govt ', '28']]
for idx, line in enumerate(sorted([row for row in headlines if len(row[0]) > 1], key=lambda z: int(z[1]), reverse=True)):
? ? print("{}. {}".format(idx+1, line[0]))
輸出:
1. In bid to boost realty, state cuts stamp duty for 7 mths
2. India sees world’s third-biggest spike of 76,000+ cases, toll crosses 60k
3. Don’t hide behind RBI on loan interest waiver: SC to govt
上面發生的事情的細分:
[row for row in headlines if len(row[0]) > 1]
headlines
如果 的長度entry_in_headlines[0]
大于 1,這將創建一個新列表,其中包含所有條目。
sorted(<iterable>, key=lambda z: int(z[1]), reverse=True)
將使用 lambda 函數對給定的可迭代對象進行排序,該函數采用一個參數,并以整數形式返回該變量的第二個索引。然后反轉結果,由于reverse=True
.
for idx, line in enumerate(<iterable>):
循環enumerate
將返回它被調用的次數的“計數”,以及迭代器內的下一個值。
print("{}. {}".format(idx+1, line[0]))
使用字符串格式化,我們在 for 循環內創建新字符串。

TA貢獻1798條經驗 獲得超3個贊
我無法真正弄清楚您正在嘗試什么或您的數據在哪里,但您需要添加一個 if 語句。
例如:
data = ['In bid to boost realty, state cuts stamp duty for 7 mths ', '42']
if len(data[0].split()) >= 2:
print(data[0])
任何 2 個字或更少的語句都不會被打印。
如果您有一個列表列表:
data = [['In bid to boost realty, state cuts stamp duty for 7 mths ', '42'],
['India sees world’s third-biggest spike of 76,000+ cases, toll crosses 60k',
'28'], ['O', '33'], ['Don’t hide behind RBI on loan interest waiver: SC to
govt ', '28']]
for lists in data:
if len(lists[0].split()) <= 2:
data.remove(lists)
print(*("".join(lists[0]) for lists in data), sep='\n')
添加回答
舉報