Python按特定值将一个列表拆分为两个列表

2024-06-28 19:47:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张这样的单子。你知道吗

val_list = [book1,book2,book3,book4,pen1,book5,pen2,book6,pen3,book7,pen8]

需要根据书和笔将此列表拆分为列表

输出:

val_list1 = [book1,book2,book3,book4,book5,book6,book7]


val_list2 =[pen1,pen2,pen3,pen8]

Tags: 列表vallist单子book1book2book3pen2
3条回答
val_list = ['book1','book2','book3','book4','pen1','book5','pen2','book6','pen3','book7','pen8']
matching_book = [s for s in val_list if "book" in s]
matching_pen = [s for s in val_list if "pen" in s]

测试和工作。你知道吗

为什么不这样做:

val_list = [book1,book2,book3,book4,pen1,book5,pen2,book6,pen3,book7,pen8]

list_1 = [x for x in val_list if "book" in x]
list_2 = [x for x in val_list if "pen" in x]

我还没有试过这个代码

尝试迭代列表并将每个元素分配给相应的子列表:

val_list = ['book1', 'book2', 'book3', 'book4', 'pen1', 'book5', 'pen2', 'book6', 'pen3', 'book7', 'pen8']
books = []
pens = []

for elem in val_list:
    if elem.startswith('book'):
        books.append(elem)
    else:
        pens.append(elem)

print(books)
print(pens)

['book1', 'book2', 'book3', 'book4', 'book5', 'book6', 'book7']
['pen1', 'pen2', 'pen3', 'pen8']

相关问题 更多 >