#1.6列表 names = ["Tom", "Mark", "Ann","Phil"] #取值 a = names[2] #赋值 names[0] = "Jeff" #追加 names.append("Google") #插入 names.insert(2, "Thomas") #提取子列表或对子列表重新赋值(返回的是列表) b = names[0:2] #["Jeff", "Mark"] c = names[2:] names[1] = 'Jeff' #将names中的第2项替换为'Jeff' #names[0] = "Jeff" names[0:2] = ['Dave', 'Mark','Jeff'] #将列表的头两项替换为右边的列表 #连接列表 a = [1,2,3] + [4,5] #[1,2,3,4,5] #创建空列表 names = [] names = list() #列表可以包含任意种类的Python对象,包括其他列表在内 a = [1, "Dave", 3.14, ["Mark", 7, 9, [100, 101]], 10] #取值 a[1] a[3][2] a[3][3][1] #程序清单1-2 import sys if len(sys.argv) != 2: #命令行参数的数量 print "Please supply a filename" raise SystemExit(1) f = open(sys.argv[1]) lines = f.readlines() f.close() #将所有输入值从字符串转换为浮点数 #特别强大的列表构造方法:列表包含 fvalues = [float(line) for line in lines] #打印最小值和最大值 print "The minimum value is ", min(fvalues) print "The maximum value is ", max(fvalues) #还可以写成如下形式 fvalues = [float(line) for line in open(sys.argv[1])]
##############################################################
#1.7元组 #创建元组 #园括号中放入一组值 from invest.networkmanager import fields stock = ('GOOG', 100, 23.90) address = ('www.python.org', 80) first_name = "jack" last_name = "tom" phone = "123456789" person = (first_name, last_name, phone) #不放入圆括号也行 stock = 'GOOG', 100, 23.90 address = 'www.python.org', 80 person = first_name, last_name, phone #0个和1个元素的元组 item = "123" a = () #0元组(空元组) b = (item,) #1元组,注意逗号 c = item, #1元组,注意逗号 #和列表一样,可以用数字索引来提取元组中的值 #更常见的做法是将元组解包为一组变量 name, shares, price = stock host, port = address first_name, last_name, phone = person #元组支持的大部分操作与列表相同(索引,切片,连接),但是创建元组后不能修改它的内容 #无法替换,删除现有元组中的元素或插入新元素 #最好把元组看成一个由多个部分组成的对象,而不是可在其中插入或删除项的不同对象的集合 #列表占内存多,元组不会占用额外的内存空间 filename = "portfolio.txt" portfolio = [] for line in open(filename): fields = line.split(",") #将每行划分为一个列表 name = fields[0] shares = int(fields[1]) price = float(fields[2]) stock = (name, shares, price) #创建一个元组(name, shares, price) portfolio.append(stock); #将记录追加到列表中 total = 0.0 for name, shares, price in portfolio: total += shares * price