nowhy

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
从数据集中遍历返回snrs,mods两个参数
snrs,mods = map(lambda j: sorted(list(set(map(lambda x: x[j], Xd.keys())))), [1,0])

snrs,mods = map(lambda j: sorted(list(set(map(lambda x: x[j], Xd.keys())))), [1,0]) //1,0是j的参数
snrs,mods = map(lambda j: sorted(list(set(map(lambda x: x[j], Xd.keys())))), [1,0])

:冒号后面位运算表达式,sorted是排序功能,map多个参数依次放入运算表达式

  map()  函数

1 map(func,iterable)
  map(lambda x: x[j], Xd.keys())#Xd.key()取出key,x[key]再返回
2 # 第一个参数为一个函数,第二个参数为迭代器 
3 # 迭代器里的每个元素成为函数的参数,遍历迭代器每个元素,传入函数
4 #
a=map(lambda x:x*x,[1,2,3,4,5])
print(list(a)) //#将map对象转换为list,并打印出结果

  >>[1, 4, 9, 16, 25

  lambda 匿名函数

# 普通定义函数
def func1(x,y):
    return x+y
# 执行函数
print(func(1,2))
# 如果此函数只调用一次,或者功能简单,此方法就显得笨拙


# lambda 
g = lambda x,y:x+y
print(g(1,2))
#lambda 表达式  冒号左边是函数的参数,右边是函数的返回值(逻辑表达式)
# 优点:
(1)Python写一些执行脚本时,使用lambda就可以省下定义函数过程,比如说我们只是需要写个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使得代码更加精简。
2)对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,有时候给函数起个名字也是比较头疼的问题,使用lambda就不需要考虑命名的问题了。 (3)简化代码的可读性,由于普通的屌丝函数阅读经常要跳到开头def定义部分,使用lambda函数可以省去这样的步骤。

  sorted()函数

sorted(iterable,key,reverse)
sorted(list(set(map(lambda x: x[j], Xd.keys()))))
Xd type:dict
//sorted按key查找
d = {'abc':1,'abb':2,'bac':3}
sorted(d.keys())
>> ['abb', 'abc', 'bac']
//sorted按value查找

 d = {'b':2,'c':1,'a':3}
 sorted(d.items(),key=lambda item:item[0])

>>[('a', 3), ('b', 2), ('c', 1)]

#sorted对dict按照参数排序 
#其中iterable表示可以迭代的对象,例如可以是 dict.items()、dict.keys()等,key是一个函数,
#用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺 序,reverse=true则是倒序,reverse=false时则是顺序,默认时reverse=false。

Python中list和set的区别

1.List
特性
列表是以类的形式实现的。“创建”列表实际上是将一个类实例化。因此,列表有多种方法可以操作。 
1. 列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。 
2. append() 方法向列表的尾部添加一个新的元素。只接受一个参数。 
3. extend() 方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。

声明
字面意思就是一个集合,在Python中List中的元素用中括号[]来表示,可以这样定义一个List:
L = [12, 'China', 19.998]

可以看到并不要求元素的类型都是一样的。当然也可以定义一个空的List:
L = []

访问
>>> print L[0]
12

千万不要越界,否则会报错

>>> print L[3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

List也可以倒序访问,通过“倒数第x个”这样的下标来表示序号,比如-1这个下标就表示最后一个元素

>>> L = [12, 'China', 19.998]
>>> print L[-1]
19.998
包含的方法
List通过内置的append()方法来添加到尾部,通过insert()方法添加到指定位置(下标从0开始):
1 L=['hello','world']
2 print(list(L))
3 L.append('!')
4 print(set(L))
>>['hello', 'world']
>>{'hello', '!', 'world'}  
1 L=['hello','world']
2 L.insert(1,'your')
3 print(L)
['hello', 'your', 'world']

注意python中有几个方法与append类似,但是效果完全不一样,使用时需根据实际需求选用正确方法

 1.append()  向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加
 2.extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加
1 L=['say','1']
2 print(L)
3 L.append(['a','d'])  #TypeError: append() takes exactly one argument (2 given)
4 print(L,L.append('aaa'))
['say', '1']
['say', '1', ['a', 'd'], 'aaa'] None
1 L=['say','1']
2 print(L)
3 L.extend(['a','d'])
4 print(L,L.append('aaa'))
5 ['say', '1']
6 ['say', '1', 'a', 'd', 'aaa'] None
TypeError: append() takes exactly one argument (2 given)

2.Set

set也是一组数,无序,内容又不能重复,通过调用set()方法创建:

基本方法:

1 s = {'A','b','C',1}
2 print('A' in s)
3 print('B' in s)
4 True
5 False

也通过for来遍历:


s = {'a123':3,'b231':4,'c421':1}
for x in s:
print (x[0],':',x[1])
q = {'a123','b231','c421'}
for x in q:
print (x[0],':',x[1])
d = {'a123','b231','c421'}
for x in d:
print (x[0],':',x[-1])

a : 1
b : 2
c : 4
b : 2
c : 4
a : 1
b : 1
c : 1
a : 3

这个顺序没搞懂!

 

 

参考链接https://www.cnblogs.com/jum-bolg/p/11093381.html   

     https://www.cnblogs.com/dylan-wu/p/6041465.html

     https://www.cnblogs.com/sharon123/p/7090001.html

posted on 2019-08-27 19:25  g6z3z  阅读(271)  评论(0编辑  收藏  举报