VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • python自动化开发学习—day2 列表、元组、字典和字符串

一. 列表和元组

1.列表的定义:

names = ["wukong","bajie","shashidi"]

2.列表的访问:

通过下标访问列表中的元素,下标从零开始计算,

names[0] = "wukong"

3. 列表的切片,取多个元素,可以从左向右切片,也可以从右向左切片。

>>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
>>> names[1:4] #取下标1至下标4之间的数字,包括1,不包括4
['Tenglan', 'Eric', 'Rain']
>>> names[1:-1] #取下标1至-1的值,不包括-1
['Tenglan', 'Eric', 'Rain', 'Tom']
>>> names[0:3]
['Alex', 'Tenglan', 'Eric']
>>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
['Alex', 'Tenglan', 'Eric']
>>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
['Rain', 'Tom', 'Amy']
>>> names[3:-1] #这样-1就不会被包含了
['Rain', 'Tom']
>>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
['Alex', 'Eric', 'Tom']
>>> names[::2] #和上句效果一样
['Alex', 'Eric', 'Tom']

4. 列表的追加

names = ["wukong","bajie","shashidi"]

names.append = "tangzhanglao"

5. 插入

names.insert(1,"小白龙")   #将“小白龙强行插入到bajie前边”

6.修改

names[1] = "八戒"     #将第二个元素从"bajie"修改为“八戒”

7.删除

del names[2]  #删除第三个元素

names.remove("wukong")   #删除指定元素

names.pop()    #删除列表最后一个值

8 扩展

names = ["wukong","bajie","shashidi"]

b = [1,2,3]

names.extend(b)

print(names)

["wukong","bajie","shashidi",1,2,3]

9. 拷贝

默认使用浅copy,有四种方法

1)name_copy = names.copy()

2)name_copy1 = copy.copy(names) #需要导入copy 模块

3)name_copy2 = names[:]

4)name_copy3 = list(names)    #list是python自带的内置函数

深copy使用方法

#先导入copy模块

name_deepcopy = copy.deepcopy(names)

10. 统计

names.count("bajie")  #统计bajie在列表中出现的次数。

11. 排序&翻转

names.sort()  # python3中不同数据类型不能放在一起排序

names.reverse()  #反转

12. 获取下标

names.index("wukong")  

#注意: 只返回找到的第一个下标,如果查找的元素不在列表中,运行会报错。

二. 元组

一旦创建,便不能再修改,所以又叫只读列表

1.定义

names = ("wukong","bajie","wujing")

2.它只有2个方法,一个是count,一个是index,OK。

三. 字符串

特性:不可以被修改

复制代码
 1 name.capitalize()  首字母大写
 2 name.casefold()   大写全部变小写
 3 name.center(50,"-")  输出 '---------------------Alex Li----------------------'
 4 name.count('lex') 统计 lex出现次数
 5 name.encode()  将字符串编码成bytes格式
 6 name.endswith("Li")  判断字符串是否以 Li结尾
 7  "Alex\tLi".expandtabs(10) 输出'Alex      Li', 将\t转换成多长的空格 
 8  name.find('A')  查找A,找到返回其索引, 找不到返回-1 
 9 
10 format :
11     >>> msg = "my name is {}, and age is {}"
12     >>> msg.format("alex",22)
13     'my name is alex, and age is 22'
14     >>> msg = "my name is {1}, and age is {0}"
15     >>> msg.format("alex",22)
16     'my name is 22, and age is alex'
17     >>> msg = "my name is {name}, and age is {age}"
18     >>> msg.format(age=22,name="ale")
19     'my name is ale, and age is 22'
20 format_map
21     >>> msg.format_map({'name':'alex','age':22})
22     'my name is alex, and age is 22'
23 
24 
25 msg.index('a')  返回a所在字符串的索引
26 '9aA'.isalnum()   True
27 
28 '9'.isdigit() 是否整数
29 name.isnumeric  
30 name.isprintable
31 name.isspace
32 name.istitle
33 name.isupper
34  "|".join(['alex','jack','rain'])
35 'alex|jack|rain'
36 
37 
38 maketrans
39     >>> intab = "aeiou"  #This is the string having actual characters. 
40     >>> outtab = "12345" #This is the string having corresponding mapping character
41     >>> trantab = str.maketrans(intab, outtab)
42     >>> 
43     >>> str = "this is string example....wow!!!"
44     >>> str.translate(trantab)
45     'th3s 3s str3ng 2x1mpl2....w4w!!!'
46 
47  msg.partition('is')   输出 ('my name ', 'is', ' {name}, and age is {age}') 
48 
49  >>> "alex li, chinese name is lijie".replace("li","LI",1)
50      'alex LI, chinese name is lijie'
51 
52  msg.swapcase 大小写互换
53 
54 
55  >>> msg.zfill(40)
56 '00000my name is {name}, and age is {age}'
57 
58 
59 
60 >>> n4.ljust(40,"-")
61 'Hello 2orld-----------------------------'
62 >>> n4.rjust(40,"-")
63 '-----------------------------Hello 2orld'
64 
65 
66 >>> b="ddefdsdff_哈哈" 
67 >>> b.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则
68 True
复制代码

四. 字典

  • dict是无序的
  • key必须是唯一的,天生去重

语法:

info = {
    'stu1101': "wukong",
    'stu1102': "bajie",
    'stu1103': "wujing",
}
1.增加元素
info['stu1104'] = 'xiaobailong'
2. 修改
info['stu1101'] = '孙悟空'
3.删除 
三种方法
info.pop('stu1101')  #标准方法
del info['stu1101']  #第二种方法
info.popitem()  #随机删除
4. 查找
三种方法
'stu1101' in info   #标准用法,找到返回True,否则返回False
info.get("stu1101")  #找到返回key对应的值,否则返回None
info['stu1101']  #如果不存在该key,会报错。
5. 其它方法
info.keys()
info.values()
info.setdefault('key','value') #如果info中没有key,则key = value, 如果info 中有key, 则key的值不变。
info.update(other dic)  #两个字典info 和dic中的内容合并,key重复时使用dic中key的值。
info.iterms()   #将字典转换为列表
dict.fromkeys([1,2,3],'testd')   #列表[1,2,3]转换为字典,值都是testd,该方法有坑,尽量少用。
6. 循环字典
#方法1
for key in info:
    print(key,info[key])

#方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
    print(k,v)
建议使用方法1, 速度快。





出处:https://www.cnblogs.com/emma20/p/13784632.html

相关教程