python使用(二)

python使用(二)

大家好,又见面了,我是全栈君。

Python中的集合类型.

1.list_option.py

2.listsplit_option.py

3. dic_option.py

4.iter_option.py

 

1.list_option.py

  1 # coding=utf8
  2 __author__ = 'SummerChill'
  3 #list 有序的列表、元素可以是不同类型的,元素值可以重复
  4 
  5 #list的初始化
  6 l=list()
  7 l=[]
  8 l=[1,2,3,'crxy',[1,2,3]]
  9 l=['a','b','c','d','b','b','e']
 10 
 11 #增加元素
 12 #追加元素list的末尾
 13 l.append('new')
 14 #添加元素到指定的索引位置
 15 l.insert(2,'Two')
 16 
 17 #删除元素
 18 #根据索引删除 如果索引缺省则会删除末尾的元素
 19 l.pop()
 20 l.pop(1)
 21 #根据value删除 只会删除第一个出现的value为'b'的元素
 22 l.remove('b')
 23 
 24 #修改元素
 25 l[3]='Three'
 26 
 27 #查询 如果index为整数表示索引,如果是负数表示取倒数第几个
 28 # print(l[2])
 29 # print(l[-2])
 30 
 31 # 最终打印的结果
 32 # c
 33 # b
 34 
 35 #tuple 元组 和list类似 只是一旦初始化在不能修改 只能查询和遍历
 36 #主要用作函数的返回值
 37 t=()
 38 t=tuple()
 39 t=(1,2,3,'a','b')
 40 
 41 #t[1]='new'  #NO!!!!!
 42 # TypeError: 'tuple' object does not support item assignment
 43 
 44 # print(t[1])
 45 # print(t[-1])
 46 
 47 
 48 #########字符串的操作返回一个副本
 49 data='str'
 50 result=data.upper()
 51 print(data,result)#('str', 'STR')
 52 
 53 #########list的操作作用在list本身
 54 l=[1,2,3]
 55 result=l.append(4)
 56 print(l,result)#([1, 2, 3, 4], None)#返回None说明append没有返回值
 57 ###############################################
 58 
 59 print(l)
 60 #拓展list 在list的尾部扩展增加新的集合
 61 l.extend(['as','s','a','b'])
 62 print(l)#[1, 2, 3, 4, 'as', 's', 'a', 'b']
 63 
 64 #统计list中某个元素的出现的次数
 65 print(l.count('a'))#1
 66 #统计list中某个元素的出现的index 返回第一个匹配的元素的索引
 67 print(l.index('a'))#6
 68 
 69 #指定区间的查找 start stop 包含start 不包含stop
 70 #查不到报错不在list中。
 71 #print(l.index('a',2,5))#ValueError: 'a' is not in list
 72 print(l.index('a',2,9))#6
 73 
 74 #反转 倒叙排列
 75 l.reverse()
 76 print(l)#['b', 'a', 's', 'as', 4, 3, 2, 1]
 77 l.sort()
 78 print(l)#[1, 2, 3, 4, 'a', 'as', 'b', 's']
 79 
 80 
 81 #排序需求:按照元素的长度来排序
 82 #通过key指定的函数来查找要排序的依据。key_fun(item)
 83 #将key_fun(item)的返回值,传入 cmp_fun(x,y) 进行比较并排序。
 84 #cmp_fun(x,y)返回值决定了排序的位置。如果 cmp_fun(x1 ,x2) <0 x1排在x2的前面。
 85 l=['b','a','c','one','two','three','four']
 86 def key_fun(item):
 87     return len(item)
 88 #如果item是int类型的,是不能调用len()方法的.
 89 #TypeError: object of type 'int' has no len()
 90 
 91 def cmp_fun(x,y):
 92     return x-y
 93 
 94 #自定义排序
 95 l.sort(key=key_fun,cmp=cmp_fun)
 96 print(l)#['b', 'a', 'c', 'one', 'two', 'four', 'three']
 97 
 98 #lamda表达式 起到了函数速写的功能,允许在代码内嵌入一个函数的定义。类似于匿名函数
 99 l.sort(key=lambda item:len(item),cmp=lambda x,y:x-y)
100 print(l)#['b', 'a', 'c', 'one', 'two', 'four', 'three']
101 
102 t=('a','b','c','a')
103 #count value的出现次数
104 print(t.count('a'))
105 # 查找tuple中value的index 如果不存在则报错 ValueError: tuple.index(x): x not in tuple
106 print(t.index('c'))

 

 

2.listsplit_option.py

 1 # coding=utf8
 2 __author__ = 'SummerChill'
 3 
 4 #L[m:n]表示,从索引m开始取,直到索引n 但包含索引n;
 5 #L[m:n:p]表示:从索引m开始到索引n取数据,但包含索引n,每p个取一个。
 6 
 7 l=['a','b','c','d','e','f','g']
 8 
 9 #L[m:n]表示,从索引m开始取,直到索引n 但包含索引n;
10 print(l[1:5])#['b', 'c', 'd', 'e']
11 #L[m:n:p]表示:从索引m开始到索引n取数据,但包含索引n,每p个取一个。
12 print(l[1:5:3])#['b', 'e']
13 
14 # m n p 可以为负数
15 #m、n为负数表示倒数第几个  前面包含后面不包含
16 print(l[-5:-1])#['c', 'd', 'e', 'f']
17 #p<0 从尾部向首部取元素
18 print(l[5:1:-1])#['f', 'e', 'd', 'c']
19 
20 print(l[-1:-4:-2])#['g', 'e']
21 
22 #m n p 可以缺省
23 #m不写从头开始取  n不写取到尾部 p不写默认为1
24 print(l[::])#['a', 'b', 'c', 'd', 'e', 'f', 'g']
25 print(l[:5:2])#['a', 'c', 'e']
26 print(l[1::2])#['b', 'd', 'f']
27 print(l[1:5])#['b', 'c', 'd', 'e']
28 print(l[5:1])#[]

 

 

 3. dic_option.py

 1 # coding=utf8
 2 __author__ = 'SummerChill'
 3 
 4 #初始化字典
 5 dic=dict()
 6 dic={
   
   'a':'A','b':'B','c':'C'}
 7 
 8 #增加和修改
 9 dic['c']='New'
10 dic['d']='D'
11 #删除指定的key
12 dic.pop('b')
13 print(dic)#{'a': 'A', 'c': 'New', 'd': 'D'}
14 
15 #查询 dic['g'] 如果key不存在则会报错 dic.get(key,defaultvalue)
16 #如果有默认值在key不存在的情况下会返回默认值
17 #print(dic['g'])#报错  KeyError: 'g'
18 
19 print(dic.get('g','defalut'))#defalut
20 print(dic.get('a','defalut'))#A
21 print(dic.get('g'))#None
22 
23 #判断是否包含key
24 print(dic.has_key('g'))#False
25 
26 #list中的元素为tuple类型。
27 print(dic.items())#[('a', 'A'), ('c', 'New'), ('d', 'D')]
28 #list 其中的元素就是key或者value本身
29 print(dic.keys())#['a', 'c', 'd']
30 print(dic.values())#['A', 'New', 'D']
31 
32 ##############set  元素不能重复  重复的会自动过滤
33 s=set()
34 s=set([1,2,3,4,1,2,3])
35 print(s)#set([1, 2, 3, 4])
36 
37 #增加元素
38 s.add(6)
39 #删除元素
40 s.remove(2)
41 
42 
43 #print(s[1]) NO !!!!!!!!!!!!!
44 # 'set' object does not support indexing
45 
46 #想把2改为6 分两步
47 # s.remove(2)  s.add(6)
48 print(s)#set([1, 3, 4, 6])
49 #set 转为list
50 l=list(s)
51 print(l)#[1, 3, 4, 6]
52 #list 转为set
53 s=set(l)
54 print(s)#set([1, 3, 4, 6])
55 
56 #遍历set的元素
57 for i in s:
58     print(i)# 1  3  4  6
59 
60 s.clear()

 

 

 4.iter_option.py

  1 # coding=utf8
  2 __author__ = 'SummerChill'
  3 
  4 sl=[1,2,3]
  5 sd={
   
   'a':'A','b':'B'}
  6 
  7 #列表生成式  从一个或者多个集合中遍历得到元素然后再筛选计算得到一个新的list
  8 #for   if
  9 #sl中元素分别平方组成新的元素
 10 l=[x*x for x in sl if x%2==0]
 11 print(l)#[4]
 12 l2=[x*x for x in sl]
 13 print(l2)#[1, 4, 9]
 14 #sd 里面的key和value组合成一个list。key value组合['a A','b B']
 15 l=[ k+' '+v for k,v in sd.items()]
 16 print(l)#['a A', 'b B']
 17 print(sd.items())#[('a', 'A'), ('b', 'B')]
 18 
 19 #复合循环
 20 l=[x*y for x in sl for y in sl if x+y>=3]
 21 print(l)#[2, 3, 2, 4, 6, 3, 6, 9]
 22 
 23 l=[x*x for x in [1,2,3,4,5,6]]
 24 print(l)#[1, 4, 9, 16, 25, 36]
 25 
 26 ###列表生成器 并没有生成一个列表
 27 g=(x*x for x in [1,2,3,4,5,6])
 28 #用next(g) 读取生成器的元素 但是如果遍历到末尾再查询会报错
 29 #print(next(g))#1
 30 #print(next(g))#4
 31 #print(next(g))#9
 32 #print(next(g))#16
 33 #print(next(g))#25
 34 #print(next(g))#36
 35 #print(next(g))#到这个地方报错...g中的元素都找完了.
 36 
 37 for i in g:
 38     print(i) # 1  4  9  16  25  36
 39 
 40 
 41 l=[1,2,3]
 42 t=(1,2,3)
 43 d={
   
   'a':'A','b':'B'}
 44 s=set([1,2,3])
 45 
 46 #默认的遍历
 47 #遍历元素本身
 48 for i in l:
 49     print(i)#1  2  3
 50 for i in t:
 51     print(i)#1  2  3
 52 for i in s:
 53     print(i)#1  2  3
 54 #对于字典 默认遍历的是key
 55 for i in d:
 56     print(i)#a b
 57 
 58 
 59 
 60 for k,v in d.items():
 61     print(k,v)#('a', 'A') ('b', 'B')
 62 for k in d.keys():
 63     print(k)#a b
 64 for v in d.values():
 65     print(v)#A B
 66 ###############################
 67 #迭代
 68 #dict
 69 # d.iteritems()
 70 # d.iterkeys()
 71 # d.itervalues()
 72 for k ,v in d.iteritems():
 73     print(k,v)#('a', 'A') ('b', 'B')
 74 for k in d.iterkeys():
 75     print(k)#a b
 76 for v in d.itervalues():
 77     print(v)#A B
 78 
 79 
 80 ##其他的集合:使用iter函数构造一个迭代器
 81 print(l)#[1, 2, 3]
 82 for i in iter(l):
 83     print(i)#1 2 3
 84 
 85 print(t)#(1, 2, 3)
 86 for i in iter(t):
 87     print(i)#1 2 3
 88 
 89 print(s)#set([1, 2, 3])
 90 for i in iter(s):
 91     print(i)#1 2 3
 92 
 93 #遍历时候加上索引 通过enumerate
 94 print(l)#[1, 2, 3]
 95 for i,v in enumerate(l):
 96     print(i,v)#(0, 1) (1, 2) (2, 3)
 97 
 98 print(t)#(1, 2, 3)
 99 for i,v in enumerate(t):
100     print(i,v)#(0, 1) (1, 2) (2, 3)
101 
102 print(s)#set([1, 2, 3])
103 for i,v in enumerate(s):
104     print(i,v)#(0, 1) (1, 2) (2, 3)
105 
106 #dict 遍历的是key
107 print(d)#{'a': 'A', 'b': 'B'}
108 for i,k in enumerate(d):
109     print(i,k,d.get(k))#(0, 'a', 'A') (1, 'b', 'B')
110 
111 #for i in range(10)类似与for(int i=0;i<10;i++;)

 

转载于:https://www.cnblogs.com/DreamDrive/p/5931104.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108850.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Eclipse创建Java Web项目时,没有自动生成web.xml文件

    Eclipse创建Java Web项目时,没有自动生成web.xml文件今天创建动态Web项目时,发现WEB-INF下面没有自动生成web.xml配置文件。解决方案:        1)方法一:            File—&gt;新建动态项目出现如下图,这时候不要急于Finish,请点击next—&gt;出现如下图—&gt;继续Next出现如下图,请选择对勾。创建好的项目,WEB-INF下面就有Web.xml文件。  方法二:在Tomcat安装包里面…

    2022年6月13日
    28
  • pycharm中使用anaconda部署python环境_anaconda虚拟环境是什么

    pycharm中使用anaconda部署python环境_anaconda虚拟环境是什么如何在pycharm中使用anaconda的虚拟环境(envs),最近项目中有许多同学咨询,这里就给大家简单介绍一下。

    2022年8月26日
    4
  • python协程系列_python异步多线程

    python协程系列_python异步多线程协程协程(Coroutine),又称微线程,纤程。(协程是一种用户态的轻量级线程)作用:在执行A函数的时候,可以随时中断,去执行B函数,然后中断B函数,继续执行A函数(可以自动切换)

    2022年7月30日
    3
  • Xshell安装docker「建议收藏」

    Xshell安装docker「建议收藏」docker基本组成镜像(image):docker镜像好比一个模板,可以通过这个模板创建容器服务,例如:tomcat镜像===>run===>tomcat01容器(提供服务器)通过这个镜像可以创建多个容器(最终服务或项目在容器中运行)容器(container):docker利用容器技术,独立运行一个或一组应用,通过镜像来创建。启动、停止、删除基本命令目前就可以把这个容器理解为就是一个简易的linux系统仓库(repository):存放镜像的地方,类似maven中央仓库仓库

    2022年9月9日
    0
  • 什么是TCC?_tc部门是什么意思

    什么是TCC?_tc部门是什么意思假设现在有一个电商系统,里面有一个支付订单的场景,那对一个订单支付之后,我们需要做下面的步骤 更改订单的状态为“已支付” 扣减商品库存 给会员增加积分 创建销售出库单通知仓库发货 业务场景有了,现在要更进一步,实现一个TCC分布式事务的效果,也就是说,订单服务-修改订单状态,库存服务-扣减库存,积分服务-增加积分,仓储服务-创建销售出库单,上述这几个步骤,要么一起成功,要么一起失败,必须是一个整体性的事务举个例子,现在订单的状态都修

    2022年4月20日
    233
  • 解决 1080端口已被占用

    解决 1080端口已被占用转载自https://blog.csdn.net/longintchar/article/details/79680589问题的提出【实验环境】:Win764bit也许你会碰到以下错误:本文给出2种解决方案。方案一既然说端口已被占用,那就需要找出是哪个程序占用了1080端口。打开cmd.exe,输入命令:netstat-aon|findstr”1080″1最后一列就…

    2022年9月6日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号