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中的列表的主要内容,如果未能解决你的问题,请参考以下文章

Python学习篇 Python中的列表

将列表元素附加到python中的列表列表

从文件中读取列表列表作为python中的列表列表

python中的列表

python 判断某个列表中的所有元素在另一个列表中

python怎么删除列表中的某个元素