python容器

  • list
  • list里面的元素的数据类型可以不同
  • list元素也可以是另一个list
s = ['python', 'java', ['asp', 'php'], 'scheme']
print(len(s))
  • 列表生成式:初始化
l=[x * x for x in range(1, 11)]
print(l)
l=[x * x for x in range(1, 11) if x % 2 == 0]
print(l)
l=[m + n for m in 'ABC' for n in 'XYZ']
print(l)
L = ['Hello', 'World', 'IBM', 'Apple']
l=[s.lower() for s in L]
print(l)
  • 增删
l = [365, 'everyday', 0.618, True]
l.append(1024)#push_back
print (l[4])
l = [365, 'everyday', 0.618, True]
l.insert(1, 'Jack')#插到1的位置上
print (l)
l = [365, 'everyday', 0.618, True]
l.pop(3)
print (l)
l = [365, 'everyday', 0.618, True]
del l[1]
print (l[1])

tuple(元组):一旦初始化就不能修改(tuple的每个元素,指向永远不变。)

#避免歧义
t = (1,)
t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
print(t)
  • 迭代
    判断一个对象是可迭代对象
from collections import Iterable
print(isinstance('abc', Iterable))
#从1开始,到10为止(不包括11)
for i in range(1, 11):
   print (i,' ', end="")
score = {
   '萧峰': 95,
   '段誉': 97,
   '虚竹': 89
}
for key in score:
    print(key)
for value in score.values():
    print(value)
for k, v in score.items():
    print(k,v)
word = 'helloworld'
for c in word:
   print c
  • 下标
l = [365, 'everyday', 0.618, True]
print (l[1])
print (l[-4])

l = [365, 'everyday', 0.618, True]
l[0] = 123
print (l[0])
word = 'helloworld'
print (word[0])
print (word[-2])
#不能通过索引访问去更改其中的字符。
word[1] = 'a'
  • 切片:适用于list,tuple,string
  • 在[]内提供一对可选数字,用:分割。开始位置包含在切片中,而结束位置不包括。
  • 如果不指定第一个数,切片就从列表第一个元素开始。
  • 如果不指定第二个数,就一直到最后一个元素结束。
  • 都不指定,则返回整个列表的一个拷贝。
l = [365, 'everyday', 0.618, True]
print (l[1:3])
print (l[1:-1])
word = 'helloworld'
print (word[5:7])
print (word[:-5])
print (word[:])

I/O

f = open('fly.txt')#只读
data = f.read()
print (data)
f.close()
f = open('fly.txt','w')#只写
data = 'I will be in a file.\nSo cool!'#覆写
f.write(data)
f.close()

应用举例

f =open('fly.txt')
lines = f.readlines()#返回list
#print (lines)
f.close()

results = []

for line in lines:
   data = line.split()
   #print data

   sum = 0
   for score in data[1:]:
       sum += int(score)
   result = '%s \t: %d\n' % (data[0], sum)
   #print (result)

   results.append(result)

#print results
output = open('fly.txt', 'w')
output.writelines(results)
output.close()
  • dict(字典):阉割版的unordered_map
  • 键/值对用冒号分割,
  • 每个对之间用逗号分割,
  • 整个字典包括在花括号中。
  • 键必须是唯一的;
  • 键只能是简单对象,比如字符串、整数、浮点数、bool值。
score = {
   '萧峰': 95,
   '段誉': 97,
   '虚竹': 89
}
#先判断是否存在(还有1种方法为get('虚竹',-1)即可返回指定的值)
if(score.get('虚竹')):
    d.pop('虚竹')
for name in score:
   print (score[name])
  • set:类似于C++的set
s = set([1, 2, 3])

s.add(4)
print(s)
s.remove(4)
print(s)

进行交并运算

s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
print(s1 & s2)
print(s1 | s2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值