Python中的列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的列表相关的知识,希望对你有一定的参考价值。
参考技术A 列表(list)是Python中一个非常重要的类型,用于管理一组数据,列表的形式如下所示
country = [\'China\', \'Germany\', \'Russia\', \'America\']
1)数据包含在引号中,Python中单引号和双引号具有相同的作用
2)使用逗号分隔数据,整个列表包含在一个中括号中
3)适用赋值操作符将一个列表赋值给一个变量名如上述例子中的“country”, Python的变量名不需要声明类型
country = []
列表不仅可以存放字符串这样的数据,还可以存放混合类型的数据,例如在列表中存储列表
除了列表外还可以存储字典和元组,字典和元组另作介绍
列表可以像数组那样通过下标获取列表中的数据,数据类型---字符串
列表可以适用冒号“:”操作符选取列表中的一部分数据,选取出的数据成为切片,实际上是字列表,但这些数据需要是连续的。
此外数据可以正向取如示例中的“0 : 2”得到列表[\'China\', \'Germany\'], 也可以反向取如“-2:-1”
需要注意的是即使切片只取一个数据得到的也是一个列表,而不是一个字符串,与使用索引得到的数据是不同的
添加数据可以使用 insert() 和 append() 两种方法,如下所示:
insert() 第一个参数确定插入的位置,在这个位置之后插入需要插入的数据, append() 将数据添加到列表的尾部
从列表中找出某个值第一个匹配项的索引位置
只能查找第一层数据,如果差列表中的列表,需要将列表全部输入。函数中的start和stop用于确定搜索范围
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
移除列表中某个值的第一个匹配项
反向列表中元素
对原列表进行排序
如何删除python列表列表中的''(空字符串)?
【中文标题】如何删除python列表列表中的\'\'(空字符串)?【英文标题】:How to remove the '' (empty string) in the list of list in python?如何删除python列表列表中的''(空字符串)? 【发布时间】:2022-01-06 08:57:17 【问题描述】:我想删除python中list列表中的空字符串('')。
我的输入是
final_list=[['','','','',''],['','','','','',],['country','','','',''],['','','India','','']]
我的预期输出应该是这样的:
final_list=[['country'],['India']]
我是 python 新手,我只是想尝试一下(注意* 下面的尝试代码不是有意的)
final=[]
for value in final_list:
if len(set(value))==1:
print(set(value))
if list(set(value))[0]=='':
continue
else:
final.append(value)
else:
(final.append(value)
print(final)
有人可以帮助我实现预期的输出吗?以一般的方式。
【问题讨论】:
【参考方案1】:您可以使用列表推导来检查子列表中是否存在任何值,并使用嵌套推导来仅检索具有值的那些
[[x for x in sub if x] for sub in final_list if any(sub)]
【讨论】:
【参考方案2】:试试下面的
final_list=[['','','','',''],['','','','','',],['country','','','',''],['','','India','','']]
lst = []
for e in final_list:
if any(e):
lst.append([x for x in e if x])
print(lst)
输出
[['country'], ['India']]
【讨论】:
【参考方案3】:您可以使用带有any
的嵌套列表推导来检查列表是否包含至少一个不为空的字符串:
>>> [[j for j in i if j] for i in final_list if any(i)]
[['country'], ['India']]
【讨论】:
【参考方案4】:假设列表列表中的字符串不包含,
那么
outlist = [','.join(innerlist).split(',') for innerlist in final_list]
但是如果list列表中的字符串可以包含,
那么
outlist = []
for inlist in final_list:
outlist.append(s for s in inlist if s != '')
【讨论】:
【参考方案5】:您可以执行以下操作(使用我的模块 sbNative -> python -m pip install sbNative
)
from sbNative.runtimetools import safeIter
final_list=[['','','','',''],['','','','','',],['country','','','',''],['','','India','','']]
for sub_list in safeIter(final_list):
while '' in sub_list: ## removing empty strings from the sub list until there are no left
sub_list.remove('')
if len(sub_list) == 0: ## checking and removing lists in case they are empty
final_list.remove(sub_list)
print(final_list)
【讨论】:
【参考方案6】:使用列表推导查找包含任何值的所有子列表。然后使用过滤器获取此子列表中包含值的所有条目(此处使用bool
检查)。
final_list = [list(filter(bool, sublist)) for sublist in final_list if any(sublist)]
【讨论】:
以上是关于Python中的列表的主要内容,如果未能解决你的问题,请参考以下文章