map是python内置函数,会根据提供的函数对指定的序列做映射。
map()函数的格式是:
map(function,iterable,...)
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。
把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。
2 map()函数实例:
del square(x):
return x ** 2
map(square,[1,2,3,4,5]) ---- -要打印结果需要 print(*map(square,[1,2,3,4,5])),这块打印了再打印就会为空
# 结果如下:
[1,4,9,16,25]
通过使用lambda匿名函数的方法使用map()函数:
map(lambda x, y: x+y,[1,3,5,7,9],[2,4,6,8,10])
# 结果如下:
[3,7,11,15,19]
通过lambda函数使返回值是一个元组:
map(lambdax, y : (x**y,x+y),[2,4,6],[3,2,1])
# 结果如下
[(8,5),(16,6),(6,7)]
当不传入function时,map()就等同于zip(),将多个列表相同位置的元素归并到一个元组:
map(None,[2,4,6],[3,2,1])
# 结果如下
[(2,3),(4,2),(6,1)]
通过map还可以实现类型转换
将元组转换为list:
map(int,(1,2,3))
# 结果如下:
[1,2,3]
将字符串转换为list:
map(int,'1234')
# 结果如下:
[1,2,3,4]
提取字典中的key,并将结果放在一个list中:
map(int,{1:2,2:3,3:4})
# 结果如下
[1,2,3]
原文链接:https://blog.csdn.net/quanlingtu1272/article/details/95482253
字典是无序的,兄弟
你看嘛:
>>> testmap={123:['aaa',5],234:['bbb',2],345:['ccc',3],456:['ddd',1]}>>> print testmap
{456: ['ddd', 1], 345: ['ccc', 3], 234: ['bbb', 2], 123: ['aaa', 5]}
>>> testmap={456:['ddd',1],234:['bbb',2],345:['ccc',3],123:['aaa',5]}
>>> print testmap
{456: ['ddd', 1], 345: ['ccc', 3], 234: ['bbb', 2], 123: ['aaa', 5]}
>>>
你说的按要求排序,应该是有一些自定义规则排序吧,假如要通过值来排序可以用以下方法:
Java代码
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>()
map.put("lisi", 5)
map.put("lisi1", 1)
map.put("lisi2", 3)
map.put("lisi3", 9)
List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(
map.entrySet())
System.out.println("--------------排序前--------------")
for (int i = 0 i < infoIds.size() i++) {
String id = infoIds.get(i).toString()
System.out.println(id)
}
// 排序
Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1,
Map.Entry<String, Integer> o2) {
return ( o1.getValue()-o2.getValue())
}
})
System.out.println("--------------排序后--------------")
for (int i = 0 i < infoIds.size() i++) {
Entry<String,Integer> ent=infoIds.get(i)
System.out.println(ent.getKey()+"="+ent.getValue())