【问题标题】:how to remove all elements in a python list which are less than a particular number of charecters如何删除python列表中小于特定字符数的所有元素
【发布时间】:2021-05-05 10:47:36
【问题描述】:
如何删除列表中少于特定字符数的所有元素?我们有一个包含 50 个元素的列表。我正在尝试删除少于 30 个字符的所有元素。
我尝试使用 my_list.remove 但它不起作用。
元素是字符串,我正在尝试删除少于 20 个字符或字母的元素数量
【问题讨论】:
标签:
python
python-3.x
database
list
python-requests
【解决方案1】:
你可以试试这个:
list1 = ['1', '2', '3' ...]
if len(list1)>50:
number = len(list1)-50
print(list1[number:])
【解决方案2】:
迭代时不能删除元素,你已经创建了一个新列表。
new_list = [x for x in old_list if len(x) > 30]
即使这样也可以,因为先计算右侧,然后覆盖旧值:
old_list = [x for x in old_list if len(x) > 30]
【解决方案3】:
这个怎么样:
filtered = filter(lambda x: len(x)>29, my_list)
filtered_list = list(filtered)
【解决方案4】:
example_list = ["1234", "12345", "123456", "1234567"]
# Example: Only keep list elements with over 5 characters
filtered_list = list(filter(lambda el: len(el) > 5, example_list))
print(filtered_list)
输出:
['123456', '1234567']
要仅保留具有 30 个或更多元素的元素,您可以将 len(el) > 5 更改为 len(el) > 29 或 len(el) >= 30。
【解决方案5】:
这可能会有所帮助:
a = ["1", " 2", "123455"]
b = []
for i in a:
if len(i)>50:
b.append(i)
a= b
print(b)