2024-10-06 12:21:18 发布
网友
假设我有一个2D列表,如:
[ [ "9743", "user3" ], [ "435", "user2" ], [ "5426", "user8" ], [ "", "" ], [ "9743", "user9" ] ]
其中,空字符串列表的索引未知。是否有一种简单的方法来分割列表,以便删除列表后面的所有内容,包括带有空字符串的列表,只保留前面的内容
您可能会丢失这样一个for循环:(x是您的列表)
output = [] for pair in x: if pair != ['', '']: output.append(pair) else: break # Breaking as soon as there is an empty pair.
输出为:
[['9743', 'user3'], ['435', 'user2'], ['5426', 'user8']]
如果您确定有['',''],请尝试以下操作:
['','']
lst = [[ "9743", "user3"],[ "435","user2"],["5426","user8"],["",""],["9743","user9"]] lst[:lst.index(['',''])] # Output # [['9743', 'user3'], ['435', 'user2'], ['5426', 'user8']]
如果您不确定是否有['',''],请尝试以下方法:
lst = [[ "9743", "user3"],[ "435","user2"],["5426","user8"],["9743","user9"]] try: out = lst[:lst.index(['',''])] except ValueError: out = lst
输出:
[['9743', 'user3'], ['435', 'user2'], ['5426', 'user8'], ['9743', 'user9']]
您可以使用itertools.takewhile:
itertools.takewhile
from itertools import takewhile list(takewhile(lambda x: x != ['', ''], the_list))
NB。我把这个名单命名为“the_list”
如果要在''的任何项目处停止:
''
from itertools import takewhile list(takewhile(lambda x: '' not in x, l))
您可能会丢失这样一个for循环:(x是您的列表)
输出为:
如果您确定有
['','']
,请尝试以下操作:如果您不确定是否有
['','']
,请尝试以下方法:输出:
您可以使用
itertools.takewhile
:NB。我把这个名单命名为“the_list”
输出:
如果要在
''
的任何项目处停止:相关问题 更多 >
编程相关推荐