Python学习数据结构、输入输出、文件对象

来源:互联网 发布:js设置input宽度 编辑:程序博客网 时间:2024/05/17 08:59

1、列表,Python中列表可以修改,而字符串和元组不能。

#列表的一部分方法>>> list1 = [11,55,21,1,85,33,66]>>> list1.append(10)>>> list1[11, 55, 21, 1, 85, 33, 66, 10]>>> list1.extend([100,200,300])>>> print("extend([100,200,300])",list1)extend([100,200,300]) [11, 55, 21, 1, 85, 33, 66, 10, 100, 200, 300]>>> list1.remove(1)>>> print("remove(1):",list1)remove(1): [11, 55, 21, 85, 33, 66, 10, 100, 200, 300]>>> list1.pop(8)200>>> print("list1.pop(8):",list1)list1.pop(8): [11, 55, 21, 85, 33, 66, 10, 100, 300]>>> list1.index(10)6>>> list1.count(10)1>>> list1[0:8:2][11, 21, 33, 10]>>> list1.clear()>>> list1[]

2、将列表当做堆使用(先进后出),将列表当做队列使用(先进先出),主要是演示列表的使用方法

#将列表当堆使用>>> list1 = [11, 55, 21, 85, 33, 66, 10, 100, 300]>>> list1.append(20)>>> list1.append(9999)>>> list1[11, 55, 21, 85, 33, 66, 10, 100, 300, 20, 9999]>>> list1.pop()9999>>> list1.pop()20>>> list1[11, 55, 21, 85, 33, 66, 10, 100, 300]>>> #将列表当做队列使用,(效率不高,涉及到元素的移动,当列表的元素很多时,耗时)>>> list1[11, 55, 21, 85, 33, 66, 10, 100, 300]>>> list1 = [11, 55, 21, 85, 33, 66]>>> list1.append(8888)>>> list1.pop(0)11>>> list1.pop(0)55>>> list1.append(1000)>>> list1[21, 85, 33, 66, 8888, 1000]>>> 

3、列表推导式,列表推导式提供了从序列创建列表的简单途径,其实将表达式简化成一行

#简单片段 >>> list1 = [1,2,3]>>> [3 * x for x in list1][3, 6, 9]>>>
#简单打印9*9乘法口诀的值>>> [i * j for i in range(1, 10) for j in range(1, i+ 1)][1, 2, 4, 3, 6, 9, 4, 8, 12, 16, 5, 10, 15, 20, 25, 6, 12, 18, 24, 30, 36, 7, 14, 21, 28, 35, 42, 49, 8, 16, 24, 32, 40, 48, 56, 64, 9, 18, 27, 36, 45, 54, 63, 72, 81]>>> 
#将3*4的矩阵修改为3*4的矩阵>>> list2 = [[1,2,3],[1,2,3],[1,2,3],[1,2,3]]>>>> [[row[i] for row in list2] for i in range(3)][[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]]

4、集合,集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。
可以用大括号({})创建集合

>>> set1 = set('safafafsafsafg')>>> set2= set('safs1a212asfa1f2')>>> set1 - set2{'g'}>>> set1 | set2                #在set1或者在set2中{'f', 'g', '1', '2', 'a', 's'}>>> set1 ^ set2                #在set1中或在set2中,但不同时在两者{'g', '2', '1'}>>> set1 & set2                #既在set1中也在set2中{'f', 's', 'a'}>>> set2                       #去除重复的元素{'f', '1', '2', 'a', 's'}>>> 

5、遍历

#构造函数 dict() 直接从键值对元组列表中构建字典  遍历字典的键值对>>> dict1 = dict([("name","apple"),("color","red"),("price",800)])>>> dict1{'name': 'apple', 'color': 'red', 'price': 800}>>> for key,value in dict1.items():    print(key,"->",value)name -> applecolor -> redprice -> 800>>> 
#enumerate()内建函数遍历列表>>> list1 = list(range(5))>>> for index ,value in enumerate(list1):         print(index,"->",value)0 -> 01 -> 12 -> 23 -> 34 -> 4>>> 
#利用reversed()反序遍历列表,注意:::reversed()不该原值>>> list1 = list(range(5))>>> for index ,value in enumerate(reversed(list1)):         print(index,"->",value)0 -> 41 -> 32 -> 23 -> 14 -> 0>>> list1[0, 1, 2, 3, 4]>>> 

6、输出格式化
format() 函数括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换

>>> print('{} --->{}'.format("wang", "yun"))wang --->yun>>>> print('{boy} --->{girl}'.format(boy ="wang", girl ="yun"))wang --->yun>>> list1 = [1,2,3]>>> dict1={"wang":"yun"}>>> print("{}---{}".format(list2,dict1))[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]---{'wang': 'yun'}>>> 

input() 函数从标准输入读入一行文本,默认的标准输入是键盘(默认输入的是字符串,如果需要数字的话(int(input(文本)))

>>> str = input("name:")name:wang>>> print("name is:", str)name is: wang>>> 

7、文件的读和写
open() 将会返回一个 file 对象,语法结构:open(file,model)
read(size)读取文件中的数据,这将读取一定数目的数据, 然后作为字符串或字节对象返回
tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数
seek()如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数,from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置

>>> f = open('/Users/wangyue/Desktop/wangyue.txt', "w")>>> f.write("wwwwwww\nwwwwwwww8888888\nwwwwwwwww")>>> f.close()>>> f = open('/Users/wangyue/Desktop/wangyue.txt','r')>>> f.read()'wwwwwww\nwwwwwwww8888888\nwwwwwwwww' >>> f.close()>>> f=open("/Users/wangyue/Desktop/wangyue.txt", "r")>>> f.readline()   #读一行'wwwwwww\n'>>> f.readline(2)  #读取下一行的size为2的字符'ww'>>> f.readline(5)   #读取下一行的size为5的字符'wwwww'>>> f.readline()  #读取一行'w8888888\n'>>> >>> f.close()>>> f= open("/Users/wangyue/Desktop/wangyue.txt","r")>>> f.tell()0>>> f.seek(5,0)5>>> f.readline()'ww\n'>>> f.seek(0,0)   0>>> f.readline()'wwwwwww\n'
原创粉丝点击