资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python函数列表操作,python列表常用函数

python里怎么从大列表里找到小列表里的值?

在 Python 中,可以使用内置的 in 运算符来判断小列表中的值是否都存在于大列表中。例如:

网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了南明免费建站欢迎大家使用!

# 定义大列表

big_list = [1, 2, 3, 4, 5]

# 定义小列表

small_list = [2, 4]

# 判断小列表中的值是否都存在于大列表中

if all(x in big_list for x in small_list):

print("小列表中的值都存在于大列表中")

else:

print("小列表中的值不都存在于大列表中")

上面的代码中,首先定义了一个大列表 big_list 和一个小列表 small_list。然后,使用 all() 函数和内置的 in 运算符来判断小列表中的值是否都存在于大列表中。如果小列表中的值都存在于大列表中,则输出“小列表中的值都存在于大列表中”;否则,输出“小列表中的值不都存在于大列表中”。

如果想找到大列表中存在于小列表中的值,则可以使用内置的 filter() 函数来过滤出符合条件的值,例如:

# 定义大列表

big_list = [1, 2, 3, 4, 5]

# 定义小列表

small_list = [2, 4]

# 过滤出大列表中存在于小列表中的值

filtered_list = filter(lambda x: x in small_list, big_list)

# 输出过滤后的列表

print(list(filtered_list))

上面的代码中,首先定义了一个大列表 big_list 和一个小列表 small_list。然后,使用内置的 filter() 函数和匿名函数(lambda)来过滤出大列表中存在于小列表中的值。最后,输出过滤后的列表。这种方法可以快速找到大列表中存在于小列表中的值。

此外,在 Python 中,还可以使用列表推导式来简化上述操作。例如,上面的代码可以改写为:

# 定义大列表

big_list = [1, 2, 3, 4, 5]

# 定义小列表

small_list = [2, 4]

# 使用列表推导式过滤出大列表中存在于小列表中的值

filtered_list = [x for x in big_list if x in small_list]

# 输出过滤

print(filtered_list)

上面的代码中,使用了列表推导式来过滤出大列表中存在于小列表中的值。最后,输出过滤后的列表,即只包含大列表中存在于小列表中的值的列表。这种方法可以让代码更加简洁,更容易理解。

总之,在 Python 中,可以使用内置的 in 运算符、filter() 函数和列表推导式来从大列表中找到小列表中的值。根据具体需求,可以选择适当的方法来实现。

Python函数里怎么用列表

car是外部作用域的变量,可以直接在函数中引用。

def movir():

print(car)

python字典操作函数

字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一内建的映射类型,基本的操作包括如下:

(1)len():返回字典中键—值对的数量;

(2)d[k]:返回关键字对于的值;

(3)d[k]=v:将值关联到键值k上;

(4)del d[k]:删除键值为k的项;

(5)key in d:键值key是否在d中,是返回True,否则返回False。

(6)clear函数:清除字典中的所有项

(7)copy函数:返回一个具有相同键值的新字典;deepcopy()函数使用深复制,复制其包含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题

(8)fromkeys函数:使用给定的键建立新的字典,键默认对应的值为None

(9)get函数:访问字典成员

(10)has_key函数:检查字典中是否含有给出的键

(11)items和iteritems函数:items将所有的字典项以列表方式返回,列表中项来自(键,值),iteritems与items作用相似,但是返回的是一个迭代器对象而不是列表

(12)keys和iterkeys:keys将字典中的键以列表形式返回,iterkeys返回键的迭代器

(13)pop函数:删除字典中对应的键

(14)popitem函数:移出字典中的项

(15)setdefault函数:类似于get方法,获取与给定键相关联的值,也可以在字典中不包含给定键的情况下设定相应的键值

(16)update函数:用一个字典更新另外一个字典

(17) values和itervalues函数:values以列表的形式返回字典中的值,itervalues返回值得迭代器,由于在字典中值不是唯一的,所以列表中可以包含重复的元素

一、字典的创建

1.1 直接创建字典

d={'one':1,'two':2,'three':3}

printd

printd['two']

printd['three']

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':3,'two':2,'one':1}

1.2 通过dict创建字典

# _*_ coding:utf-8 _*_

items=[('one',1),('two',2),('three',3),('four',4)]

printu'items中的内容:'

printitems

printu'利用dict创建字典,输出字典内容:'

d=dict(items)

printd

printu'查询字典中的内容:'

printd['one']

printd['three']

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

items中的内容:

[('one',1), ('two',2), ('three',3), ('four',4)]

利用dict创建字典,输出字典内容:

{'four':4,'three':3,'two':2,'one':1}

查询字典中的内容:

或者通过关键字创建字典

# _*_ coding:utf-8 _*_

d=dict(one=1,two=2,three=3)

printu'输出字典内容:'

printd

printu'查询字典中的内容:'

printd['one']

printd['three']

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

输出字典内容:

{'three':3,'two':2,'one':1}

查询字典中的内容:

二、字典的格式化字符串

# _*_ coding:utf-8 _*_

d={'one':1,'two':2,'three':3,'four':4}

printd

print"three is %(three)s."%d

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'four':4,'three':3,'two':2,'one':1}

threeis3.

三、字典方法

3.1 clear函数:清除字典中的所有项

# _*_ coding:utf-8 _*_

d={'one':1,'two':2,'three':3,'four':4}

printd

d.clear()

printd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'four':4,'three':3,'two':2,'one':1}

{}

请看下面两个例子

3.1.1

# _*_ coding:utf-8 _*_

d={}

dd=d

d['one']=1

d['two']=2

printdd

d={}

printd

printdd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'two':2,'one':1}

{}

{'two':2,'one':1}

3.1.2

# _*_ coding:utf-8 _*_

d={}

dd=d

d['one']=1

d['two']=2

printdd

d.clear()

printd

printdd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'two':2,'one':1}

{}

{}

3.1.2与3.1.1唯一不同的是在对字典d的清空处理上,3.1.1将d关联到一个新的空字典上,这种方式对字典dd是没有影响的,所以在字典d被置空后,字典dd里面的值仍旧没有变化。但是在3.1.2中clear方法清空字典d中的内容,clear是一个原地操作的方法,使得d中的内容全部被置空,这样dd所指向的空间也被置空。

3.2 copy函数:返回一个具有相同键值的新字典

# _*_ coding:utf-8 _*_

x={'one':1,'two':2,'three':3,'test':['a','b','c']}

printu'初始X字典:'

printx

printu'X复制到Y:'

y=x.copy()

printu'Y字典:'

printy

y['three']=33

printu'修改Y中的值,观察输出:'

printy

printx

printu'删除Y中的值,观察输出'

y['test'].remove('c')

printy

printx

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

初始X字典:

{'test': ['a','b','c'],'three':3,'two':2,'one':1}

X复制到Y:

Y字典:

{'test': ['a','b','c'],'one':1,'three':3,'two':2}

修改Y中的值,观察输出:

{'test': ['a','b','c'],'one':1,'three':33,'two':2}

{'test': ['a','b','c'],'three':3,'two':2,'one':1}

删除Y中的值,观察输出

{'test': ['a','b'],'one':1,'three':33,'two':2}

{'test': ['a','b'],'three':3,'two':2,'one':1}

注:在复制的副本中对值进行替换后,对原来的字典不产生影响,但是如果修改了副本,原始的字典也会被修改。deepcopy函数使用深复制,复制其包含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题。

# _*_ coding:utf-8 _*_

fromcopyimportdeepcopy

x={}

x['test']=['a','b','c','d']

y=x.copy()

z=deepcopy(x)

printu'输出:'

printy

printz

printu'修改后输出:'

x['test'].append('e')

printy

printz

运算输出:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

输出:

{'test': ['a','b','c','d']}

{'test': ['a','b','c','d']}

修改后输出:

{'test': ['a','b','c','d','e']}

{'test': ['a','b','c','d']}

3.3 fromkeys函数:使用给定的键建立新的字典,键默认对应的值为None

# _*_ coding:utf-8 _*_

d=dict.fromkeys(['one','two','three'])

printd

运算输出:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':None,'two':None,'one':None}

或者指定默认的对应值

# _*_ coding:utf-8 _*_

d=dict.fromkeys(['one','two','three'],'unknow')

printd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':'unknow','two':'unknow','one':'unknow'}

3.4 get函数:访问字典成员

# _*_ coding:utf-8 _*_

d={'one':1,'two':2,'three':3}

printd

printd.get('one')

printd.get('four')

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':3,'two':2,'one':1}

1

None

注:get函数可以访问字典中不存在的键,当该键不存在是返回None

3.5 has_key函数:检查字典中是否含有给出的键

# _*_ coding:utf-8 _*_

d={'one':1,'two':2,'three':3}

printd

printd.has_key('one')

printd.has_key('four')

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':3,'two':2,'one':1}

True

False

3.6 items和iteritems函数:items将所有的字典项以列表方式返回,列表中项来自(键,值),iteritems与items作用相似,但是返回的是一个迭代器对象而不是列表

# _*_ coding:utf-8 _*_

d={'one':1,'two':2,'three':3}

printd

list=d.items()

forkey,valueinlist:

printkey,':',value

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':3,'two':2,'one':1}

three :3

two :2

one :1

# _*_ coding:utf-8 _*_

d={'one':1,'two':2,'three':3}

printd

it=d.iteritems()

fork,vinit:

print"d[%s]="%k,v

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':3,'two':2,'one':1}

d[three]=3

d[two]=2

d[one]=1

3.7 keys和iterkeys:keys将字典中的键以列表形式返回,iterkeys返回键的迭代器

# _*_ coding:utf-8 _*_

d={'one':1,'two':2,'three':3}

printd

printu'keys方法:'

list=d.keys()

printlist

printu'\niterkeys方法:'

it=d.iterkeys()

forxinit:

printx

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':3,'two':2,'one':1}

keys方法:

['three','two','one']

iterkeys方法:

three

two

one

3.8 pop函数:删除字典中对应的键

# _*_ coding:utf-8 _*_

d={'one':1,'two':2,'three':3}

printd

d.pop('one')

printd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':3,'two':2,'one':1}

{'three':3,'two':2}

3.9 popitem函数:移出字典中的项

# _*_ coding:utf-8 _*_

d={'one':1,'two':2,'three':3}

printd

d.popitem()

printd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':3,'two':2,'one':1}

{'two':2,'one':1}

3.10 setdefault函数:类似于get方法,获取与给定键相关联的值,也可以在字典中不包含给定键的情况下设定相应的键值

# _*_ coding:utf-8 _*_

d={'one':1,'two':2,'three':3}

printd

printd.setdefault('one',1)

printd.setdefault('four',4)

printd

运算结果:

{'three':3,'two':2,'one':1}

{'four':4,'three':3,'two':2,'one':1}

3.11 update函数:用一个字典更新另外一个字典

# _*_ coding:utf-8 _*_

d={

'one':123,

'two':2,

'three':3

}

printd

x={'one':1}

d.update(x)

printd

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

{'three':3,'two':2,'one':123}

{'three':3,'two':2,'one':1}

3.12 values和itervalues函数:values以列表的形式返回字典中的值,itervalues返回值得迭代器,由于在字典中值不是唯一的,所以列表中可以包含重复的元素

# _*_ coding:utf-8 _*_

d={

'one':123,

'two':2,

'three':3,

'test':2

}

printd.values()

运算结果:

=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======

[2,3,2,123]

python 8个常用内置函数解说

8个超好用内置函数set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()

python中有许多内置函数,不像print那么广为人知,但它们却异常的强大,用好了可以大大提高代码效率。

这次来梳理下8个好用的python内置函数

1、set()

当需要对一个列表进行去重操作的时候,set()函数就派上用场了。

用于创建一个集合,集合里的元素是无序且不重复的。集合对象创建后,还能使用并集、交集、差集功能。

2、eval()之前有人问如何用python写一个四则运算器,输入字符串公式,直接产生结果。用eval()来做就很简单:eval(str_expression)作用是将字符串转换成表达式,并且执行。

3、sorted()在处理数据过程中,我们经常会用到排序操作,比如将列表、字典、元组里面的元素正/倒排序。这时候就需要用到sorted() ,它可以对任何可迭代对象进行排序,并返回列表。对列表升序操作:

对元组倒序操作:

使用参数:key,根据自定义规则,按字符串长度来排序:

根据自定义规则,对元组构成的列表进行排序:

4、reversed()如果需要对序列的元素进行反转操作,reversed()函数能帮到你。reversed()接受一个序列,将序列里的元素反转,并最终返回迭代器。

5、map()做文本处理的时候,假如要对序列里的每个单词进行大写转化操作。这个时候就可以使用map()函数。

map()会根据提供的函数,对指定的序列做映射,最终返回迭代器。也就是说map()函数会把序列里的每一个元素用指定的方法加工一遍,最终返回给你加工好的序列。举个例子,对列表里的每个数字作平方处理:

6、reduce()前面说到对列表里的每个数字作平方处理,用map()函数。那我想将列表里的每个元素相乘,该怎么做呢?这时候用到reduce()函数。

reduce()会对参数序列中元素进行累积。第一、第二个元素先进行函数操作,生成的结果再和第三个元素进行函数操作,以此类推,最终生成所有元素累积运算的结果。再举个例子,将字母连接成字符串。

你可能已经注意到,reduce()函数在python3里已经不再是内置函数,而是迁移到了functools模块中。这里把reduce()函数拎出来讲,是因为它太重要了。

7、filter()一些数字组成的列表,要把其中偶数去掉,该怎么做呢?

filter()函数轻松完成了任务,它用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象。filter()函数和map()、reduce()函数类似,都是将序列里的每个元素映射到函数,最终返回结果。我们再试试,如何从许多单词里挑出包含字母w的单词。

8、enumerate()这样一个场景,同时打印出序列里每一个元素和它对应的顺序号,我们用enumerate()函数做做看。

enumerate翻译过来是枚举、列举的意思,所以说enumerate()函数用于对序列里的元素进行顺序标注,返回(元素、索引)组成的迭代器。再举个例子说明,对字符串进行标注,返回每个字母和其索引。

四、 python中的数据类型——列表

列表是一种有序的集合,有点类似c里面的数组。它的特点是,可以随时向里面添加或删除其中的元素,在python中经常用来存放数据。列表的特点是中括号,内部元素用逗号隔开。

在这个列表中,可以放进去任何元素,不论你的元素是字符串、整型、浮点型、还是布尔值、空值,包括列表什么的,都可以放进去。

元素与元素之间,用逗号隔开。

列表会为每个元素分配序号,这个序号代表它的位置,称为索引(index),第一个元素的位置是0,第二个元素是1,以此类推。

使用索引获取列表中的值时,需要使用中括号来访问,在中括号前面加上列表名,中括号内部是元素的索引。

0代表第一个元素的位置,1代表第二个,-1代表倒数第一个,-2代表倒数第二个

使用 len() 函数,可以查看列表里面有多少个元素

在python中,列表的操作是非常的灵活的,我们可以向其中添加或删除元素。

添加使用 list.append() 函数

list.append() 函数是将元素插入到列表的末尾,当我们想在特定位置插入元素时可以使用 list.insert() 函数

list.insert() 函数接受两个参数,第一个参数是插入位置,第二个参数是要插入的元素。

需要注意的是,在使用append和insert时,必须在前面注明要操作的列表。就像上面的例子,我们要操作classmates这个列表,所以必须写成 classmates.append() 或 classmates.insert() ,如果不这么写,计算机就不知道你要往哪个列表中加入元素。

没有特殊情况的话,推荐使用append()函数添加元素,因为使用append的时候,元素默认加在列表尾部,不会造成其他元素索引值的改变。如果使用insert的话,就像上面的insert(1,'Tom'),在位置1插入'Tom'后,Tom后面所有的元素,索引值都加了一个1,列表中元素越多,受影响的程度越大,因此使用append()函数要比insert()函数更快。

删除列表中元素的方法有三种

del后面需要用索引的方式表明要删除的元素,也就是上面的例子,names[1]代表names中的第二个元素,使用del即可删除

list.pop() 函数与del差不多,都是使用索引值进行删除,只不过写法不同。

我们可以发现,执行 names.pop(1) 后,python shell打印出了第二个元素的值,也就是我们要删除的那个值,这是因为 pop() 这个函数,是有返回值的,有时候我们需要使用这个值,这个时候就可以用变量存起来。

这样我们就可以通过调用a而使用刚才删掉的元素了。

list.remove() 函数的作用是删除第一个匹配的元素,上面的例子中,names这个列表里面,有两个'Bob',remove函数只删除了第一个'Bob'。这就是 list.remove() 函数的特点。

有时候我们想使用列表的前10个元素,或者前n个元素,这时候就应该使用列表的切片。

切片和索引类似,都是使用中括号,区别是,索引中的中括号里面只有一个数,而切片不同。切片是切割列表,形成切割下来的部分形成新的列表。

切片: list[start:end:[step=1]] ,这就是切片的表达式,要求start和end两者必须有一个,step不是可以不指定,不指定的时候默认为1。

切片该怎么理解呢,start就是开始的位置,end就是结束的位置。切片有个特点是“取前不取后”,看上面那个例子可以发现,1作为start,3作为end,1代表第二个元素,3代表第四个元素,列表切片的时候,是不取后面的那个数字对应的元素的,也就是不取第四个元素,所以names[1:3]只取了第二个元素和第三个元素,这就是所谓的取前不取后。

再看下一个例子。

当不指定start或者end的时候,start默认为0,end默认为最后一个元素的索引值+1,因为“取前不取后”,要想取到最后一个元素,必须加个1才行。

上例中,用 len(numbers) 表示了最后一个元素的索引值,因为索引值从0开始,最后一个元素的索引值一定是列表内元素个数-1,根据“取前不取后”,在end位置上的数字应该+1,所以最后就等于 len(numbers) 了。

当不设定start和end的时候,就默认取所有的元素了。

当加入step,这个选项后,step代表步长,默认为1,设定成2的时候,就是隔一个取一个,设定成3时就是隔两个取一个。

上例中,第一个切片,start和end均未设定,因此从第一个元素开始,隔一个取一个,得到了所有奇数位置的元素。

第二个切片,start设定为了1,因此取了所有偶数位置的元素。

3在列表中,0不在列表中,所以 3 in a 是True,而 0 in a 是False

更多关于列表的信息可以通过使用 help(list) 查看帮助文档。

python中的列表与数组转换

将列表转换成数组或者数组转换成列表,操作如下(使用函数array 和 tolist):

from numpy import *

listS = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [20, 30, 40, 50, 60, 70, 80, 90, 100]]

print(listS)

temp_array = array(listS, dtype=object)

print(temp_array)

listR = temp_array.tolist()

print(listR)


标题名称:python函数列表操作,python列表常用函数
分享地址:http://cdkjz.cn/article/hssced.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220