Python参考手册----第一章: Python简介(三)

#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

posted on 2012-12-03 18:10  屁屁侠  阅读(538)  评论(0编辑  收藏  举报

导航