Week02

列表列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作定义列表names = ['Airic','Jonas','Micky']
#!/usr/local/bin/python3
# Author:Jonas Mao

names = ['jonas','aliy','john','james','lucy']
print(names)
print(names[0],names[1])
print(names[1:3])
print(names[3])
print(names[0:2])
print(names[:2])
print(names[-1])
print(names[-3:-1])
print(names[-3:])
View Code
 1 names = ['jonas','air','john','james','lucy']
 2 
 3 names.append('lili')
 4 names.insert(1,'nicky')
 5 names[2] = 'air'
 6 
 7 names.remove('air')
 8 del names[1]
 9 names.pop()
10 names.pop(2)
11 print(names)
View Code
 1 names = ['jonas','aliy','john','james','lucy']
 2 
 3 print(names)
 4 print(names.index('aliy'))
 5 print(names[names.index('aliy')])
 6 print(names.count('aliy'))
 7 #names.clear() #清空列表
 8 names.reverse()
 9 print(names)
10 names.sort()
11 print(names)
12 
13 names2 = [1,2,3,4]
14 names.extend(names2)
15 print(names)
16 print(names2)
17 
18 del names2
19 print(names2)
View Code
 1 names = ['jonas','oldboy',['jonas2','aliy2'],'aliy','Lucy','aliy']
 2 names2 = names.copy()
 3 print(names)
 4 print(names2)
 5 
 6 names[4] = 'lili'
 7 print(names)
 8 print(names2)
 9 
10 names[2][0] = 'abc'
11 print(names)
12 print(names2)
View Code
 1 import copy
 2 
 3 names = ['jonas','oldboy',['jonas2','aliy2'],'aliy','Lucy','aliy']
 4 names2 = copy.deepcopy(names)
 5 print(names)
 6 print(names2)
 7 
 8 names[4] = 'lili'
 9 print(names)
10 print(names2)
11 
12 names[2][0] = 'abc'
13 print(names)
14 print(names2)
View Code
1 names = ['jonas','oldboy',['jonas2','aliy2'],'aliy','Lucy','aliy']
2 
3 print(names[0:-1:2])
4 print(names[::2])
5 print(names[:])
6 
7 for i in names:
8 print(i)
View Code
 1 import copy
 2 
 3 person=['name',['saving',100]]
 4 
 5 '''三种浅copy
 6 p1=copy.copy(person)
 7 p2=person[:]
 8 p3=list(person)'''
 9 
10 p1=person[:]
11 p2=person[:]
12 
13 p1[0]='Jonas'
14 p2[0]='James'
15 
16 p1[1][1]=50
17 
18 print(p1)
19 print(p2)
View Code元组元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
names = ("jame","jack","eric")它只有2个方法,一个是count,一个是index,完毕。 Enumerate
1 >>>
2 >>> a = [1,2,3]
3 >>> for i in enumerate(a):print(i)
4 ...
5 (0, 1)
6 (1, 2)
7 (2, 3)
8 >>>
View Code字符串操作
 1 name = "my name is {name} and i am {year} old"
 2 
 3 print(name.capitalize())
 4 print(name.casefold()
 5 print(name.count("a"))
 6 print(name.center(50,"-"))
 7 print(name.endswith("ex"))
 8 print(name.encode())    
 9 print(name.expandtabs(tabsize=30))
10 print(name.find('A'))
11 print(name[name.find("name"):])
12 print(name.format(name=;'Jonas',year=23))
13 print(name.format_map( {'name':'Jonas','year':12} ))
14 print('ab23'.isalnum())
15 print('abA'.isalpha())
16 print('1A'.isdecimal())
17 print('1A'.isdigit())
18 print('a 1A'.isidentifier()) 
19 print('33A'.isnumeric())
20 print('My Name Is '.istitle())
21 print('My Name Is '.isprintable()) #tty file ,drive file
22 print('My Name Is '.isupper())
23 print('+'.join( ['1','2','3']) )
24 print( name.ljust(50,'*') )
25 print( name.rjust(50,'-') )
26 print( 'Jonas'.lower() )
27 print( 'Jonas'.upper() )
28 print( 'nJonas''.lstrip() )
29 print( 'Jonas'n'.rstrip() )
30 print( ' Jonas'n'.strip() )
31 p = str.maketrans("abcde",'12345')
32 print("jonas mc".translate(p) )
33 
34 print('jonas mc'.replace('j','J',1))
35 print('jonas mc'.rfind('j'))
36 print('1+2+3+4'.split('n'))
37 print('1+2n+3+4'.splitlines())
38 print('Jonas mc'.swapcase())
39 print('Jonas mc'.title())
40 print('Jonas mc'.zfill(50))
View Code字典操作字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。info = {
'key1': "value1",
'key2': "value2",
'key3': "value3",
}字典的特性dict是无序的
key必须是唯一的, 天生去重增加>>> info["key4"] = "value4"
修改>>> info['key1'] = "value1"
删除>>> info.pop("key1") >>> del info['key2'] >>> info.popitem()>>> info
查找 >>> "key1" in info >>> info.get("key2") >>> info["key2"]     #如果一个key不存在,就报错,get不会,不存在只返回None
 1 cata= {
 2     "Europe":{
 3         "aaa": ["aaa"],
 4         "bbb": ["bbb"]
 5     },
 6     "Japan":{
 7         'ddd': ['dd', 'ddd'],
 8         'eee': ['ee', 'eee']
 9     },
10     "Mainland":{
11         'ggg': ['gg', 'ggg'],
12         'hhh': ['hh', 'hhh']
13     }
14 }
15 cata["Mainland"]["ggg"][1] += ", gggg+++++"
16 print(cata)
17 print(cata['Mainland'])
18 print(cata["Mainland"]["ggg"])
19 print(cata['Mainland']['ggg'][0])
20 print(cata['Mainland']['ggg'][1])
21 print(cata.values())
View Code#values>>> info.values()#keys>>> info.keys()#setdefault>>> info.setdefault("key5","Jonas")>>> info.setdefault("key5","Jonas")  #已存在则不修改#update >>> b = {1:'a',2:'b',3:'c'}>>> info.update(b)#itemsinfo.items()#fromkeys>>> dict.fromkeys([1,2,3],'test')循环dict方法1for key in info:print(key,info[key])方法2for k,v in info.items():   #会先把dict转成list,数据里大时莫用print(k,v) 集合操作集合是一个无序的,不重复的数据组合,它的主要作用如下:去重,把一个列表变成集合,就自动去重了关系测试,测试两组数据之前的交集、差集、并集等关系
 1 s = set([1, 2, 3, 4])
 2 t = set([3, 4, 5, 6])
 3 
 4 a = t | s             # t 和 s的并集
 5 b = t & s             # t 和 s的交集
 6 c = t – s            # 求差集(项在t中,但不在s中)
 7 d = t ^ s             # 对称差集(项在t或s中,但不会同时出现在二者中)
 8 t.add('x')            # 添加一项
 9 s.update([1, 3, 9])        # 在s中添加多项
10 t.remove('3')            # 删除一项:
11 
12 len(s)                #set的长度
13 x in s                #测试x是否是s的成员
14 x not in s            #测试x是否不是s的成员
15 s.issubset(t)            #s <= t  测试是否s中的每一个元素都在t中
16 s.issuperset(t)            #s >= t 测试是否t中的每一个元素都在s中
17 s.union(t)
18 s | t                 #返回一个新的set包含s和t中的每一个元素
19 s.intersection(t)
20 s & t                 #返回一个新的set包含s和t中的公共元素
21 s.difference(t)
22 s - t                 #返回一个新的set包含s中有但是t中没有的元素
23 s.symmetric_difference(t)
24 s ^ t                  #返回一个新的set包含s和t中不重复的元素
25 s.copy()                返回set “s”的一个浅复制
View Code
文件操作

对文件操作流程:
打开文件,得到文件句柄并赋值给一个变量
通过句柄对文件进行操作
关闭文件

基本操作
f = open('file1')     # 打开文件
first_line = f.readline()
print(first_line)     # 读一行
data = f.read()  # 读取剩下的所有内容,文件大时不要用,返回字符串形式
#data = f.readlines() # 读取剩下的所有内容,文件大时不要用,返回列表形式
print(data) # 打印文件
f.close() # 关闭文件

打开文件模式
r,只读模式(默认)
w,只写模式。【不可读;不存在则创建;存在则删除内容;】
a,追加模式。【可读;不存在则创建;存在则只追加内容;】

"+"表示可以同时读写某个文件
 +,可读写文件。【可读;可写;可追加】
w +,写读
a +,同a

"U"表示在读取时,可以将 r n rn自动转换成 n (与r或r + 模式同使用)
rU
r + U

"b"表示处理二进制文件
rb
wb
ab

with语句
为了避免打开文件后忘记关闭,可以通过管理上下文,即:
with open('log', 'r') as f:
...
当with代码块执行完毕时,内部会自动关闭并释放文件资源。

with又支持同时对多个文件的上下文进行管理
with open('log1') as obj1, open('log2') as obj2:
pass

相关内容推荐