在python的函数中,如何将python 列表listt的一部分作为函数的参数?

python(34)
map() 可以理解为一种映射
map(func, sequence)
入参是函数和序列
返回一个列表,这个列表是序列的每个元素被func作用后的结果。
举例:把列表中的数字转化为字符串
list_a = [1,2,3]
list_a_str = map(str, list_a)
非常有用的一点是lambda可以当做参数来使用。
map(lambda x:x*x, list_a)
filter(func, sequence)
过滤和筛选
入参:函数和序列
返回值:可以这样理解if func(item) 则保留func(item)
help(filter)查看帮助
比如我要通过白名单过滤一个列表
比如:我有一个白名单列表white_list,有一个系统账户列表user_list,我现在想获取不在白名单中的账户列表result_list,那么我可以通过filter进行过滤。
def is_in(usr_name, white_list):
if user_name in white_list:
return True
return False
result_list = filter(is_in, user_list)
或者通过列表生成器
result_list = [user for user in user_list if user not in white_list]
lambda匿名函数
关键字lambda表示匿名函数,冒号前面的x表示函数参数
lambda x:x*x
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:25513次
积分:1905
积分:1905
排名:第18402名
原创:165篇
(7)(16)(9)(28)(20)(15)(11)(16)(11)(6)(7)(2)(3)(4)(10)(6)(11)有趣且强大的Python列表:list函数使用详解 真的是详解! - 推酷
有趣且强大的Python列表:list函数使用详解 真的是详解!
派森大法好,派森大法好!? (? ? ?)?
------------------------
Python本身可读性就很高,在Py中列表是 非常强大 的。列表相对于字符串或元组(Tuple,与列表类似,特点是元素不可修改)是可以修改的。先来看看简单的赋值操作。
适用于序列的标注操作都适用于列表,但是列表是可修改的。像最简单的赋值:
x = [1,2,3,&b1ta&,&CSDN&]
Python中,赋值是简单的,一只需要用普通的赋值语句就行了,即左边是变量名,右边是值,用等号连接。一句话,不像某字母语言...╮( ̄▽ ̄&)╭在这里就是将1,2,3,b1ta,CSDN各绑定到了x列表中。在这里1,2,3是整数型,b1ta和CSDN是字符串,故加引号。
如果我想改变一个元素怎么做呢?很简单,语句格式是:
列表名[元素位置] = 内容
举个例子,在Python中,第一位是以0开始计数的,
现在我要将第4位的“CSDN”改成“cnBlogs”,只需要:
x[4] = &cnBlogs&
返回的结果就是
[1,2,3,&b1ta&,&cnBlogs&]
此列表的长度为4,就不能给索引是5的元素进行赋值,如果非得那么做我也拦不住你,但是必须要创建个长度为5的列表。
Python列表的强大之处之一——分片赋值:
这样就可以一次性赋值多个元素了。不仅如此,还可以一次性替换:
不等长的序列可以与原先的序列一次替换,免去了一个个赋值的麻烦。分片赋值很强大!还可以插入元素:
重头戏要登场了,我们可以利用分片赋值插入序列来“替换”不要的元素,也就是删除:
这再一次体现了分片赋值的强大,同时体现了Python的高效率和灵活性 =v=.
前面提到了利用分片赋值进行删除,但是如果我用分片赋值删除一个元素的话就显得很蹩脚了:
所以还是使用 del 语句来实现:
del blog[6]
&&& blog['c', 'n', 'B', 'l', 'o', 'g']
轻而易举的删除了第六个元素。del语句还能用于删除其他的元素,例如字典元素,或者其他变量的操作。我现在要删除blog列表,直接del就行了:
从此blog烟消云散。
顺便提一下 pop 方法,同样也能删除列表中的一个元素,区别在于只有它能返回该元素的值:
&&& blog.pop()
在默认的情况下,删除最后一个元素。
那么问题来了,如果我不知道这个元素的序号怎么办(一般适用于长列表)??这时候 remove 就派上用场了,下面是一个列表:
x =[,&xyz&,&b1ta&,&cnBlogs&,&CSDN&,&Baidu&,&Google&,233333,&CSDN&]
那么我要删除“CSDN”,只需要
x.remove(&CSDN&)
注意!仔细看这个列表有两个“CSDN”,remove只会把第一次出现的“CSDN”删除。
如果我想在末尾增加一个新的对象要怎么做?
很简单,利用 append 方法。
x = [&b1ta&,&cnBlogs&,66666]
x.append(23333)
[&b1ta&,&cnBlogs&,]
同样简单的妙不可言,注意!append是直接修改列表,而不是返回一个修改过的列表,这样在sort方法(原位置对列表排序)中就会出现问题。在这里提一点,用list做变量名是极力不推荐的,因为如果使用了list作为变量名的话就无法调用list函数(实际上是一种类型,不是函数)了,同样的对于其他函数名称也是如此。
如果要在一次性添加一个序列中的多个值,就可以使用 extend 用于拓展列表,现在如下有两个列表:
listA = [123,&cnBlogs&]
listB = [456,&CSDN&]
我要将listA追加到listB末尾,那么用加号就行了:
&&& listB + listA
[456, 'CSDN', 123, 'cnBlogs']
同样的,如果需要将listA追加到listB,只需要将两个对象调换位置:
&&& listA + listB
[123, 'cnBlogs', 456, 'CSDN']
如果需要赋值给一个变量,只需要用普通赋值语句:
listC = listA + listB
[123, 'cnBlogs', 456, 'CSDN']
用连接符(&+&)和之前的拓展列表是截然不同的, 连接符会返回一个全新的列表,并不会修改原先的列表 。或者也可以使用分片赋值的方法来添加:
listA[len(listA):] = listB
[123, 'cnBlogs', 456, 'CSDN']
这就直接将listA修改了,代码可读性和extend比起来就差得多得多了。
还有种方法进行添加,利用 insert 插入对象,例如将&b1ta&插入到listA的第1位之后:
listA.insert(1,&b1ta&)
[123, 'b1ta', 'cnBlogs']
这个方法和append的区别就是可以添加到指定位置,同样用分片赋值也能实现:
挺奇葩的,同样的,可读性不如insert。
以上就是list的基本用法详解,对于list还有更多、更高级的方法,在此就不多提了。o(〃'▽'〃)o 其实我是懒
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致python之函数的参数_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
python之函数的参数
上传于|0|0|文档简介
&&python之函数的参数
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 python 函数参数 list 的文章

 

随机推荐