《think in python》学习
think in python 10列表
和字符串相似,列表是值得序列。在列表中,它可以是任何类型,列表中的值成为元素,有时也称为列表项
s = print s
#列表也是可嵌套的。
s = ]
print s
列表是可变的
s = ]
print s
s = 15
print s
通过操作下班,改变了 列表中的某个值。
遍历一个列表
for i in s: print i
for i in range(len(s)):
print s
操作列表
a =
b =
c = a+b
print c
d = a*4
print d
+号操作符可以拼接列表,*号可以重复一个列表多次
列表切片
切片操作也可以用于列表
word = ['a','b','c','d','e','f','g']
#
print word[::-1]
print word[:]
print word
列表方法
append方法可以在列表尾部添加新的元素
word.append("h")
print word
extend接受一个列表作为参数,并将其附加到列表中
word2 = ['i','j','k']
word.extend(word2[::-1])
print word
sort方法将列表中的元素从低到高重新排序
word.sort()
print word
删除元素
从列表中删除元素,有很多方法,如果你知道下班可以使用pop
pop返回被删掉的值
w = word.pop(1)
print w
del则是直接删掉指定的值
del word
remove可以删掉元素本身
word = ['A','B']
word.remove('A')
删除多个 可以利用 del配合 切片进行
del word
列表和字符串
字符串是 字符的序列, 列表是值的序列。
list函数可以将字符串转换成一个字符的列表
name='hebo'
sn = list(name)
print sn
split可以按指定方式拆分字符
s =' hello world today'
ns = s.split()
print ns
练习
编写一个函数nested_sum 接受一个由内嵌的整数列表组成的列表作为形参,并将内嵌列表中的值全部加起来。
```
def nested_sum(list):
l = []
for i in list:
l += i
return sum(l)
print nested_sum([,]) ```
编写一个函数,接受一个数字列表,并返回其积累和,即一个新的列表,期第i位元素是原始列表的前i+1元素的和
```
def sum_list(list):
r = []
for i in list:
r.append(sum(list[:i]))
return r
print sum_list() ```
写一个middle函数,接受一个列表作为形参,返回一个新列表。包含除了第一个和最后一个元素之外的所有元素 def middle(n): return n
编写一个chop函数,接受一个列表,修改它,删除它第一个和最后一个元素 并返回None def chop(list): del list del list return None
编写一个is_sorted来判断一个列表是否按照升序排列。 def is_sorted(list): s=list[:] s.sort() for i in range(len(list)-1): if s!=list: return False return True
编写一个has_duplicates函数,接受一个列表,当其中任何一个元素出现多一于一次,返回True
```
def has_duplicates(list):
s = list[:]
s.sort()
for i in range(len(s)-1):
if s==s:
return True
return False
print has_duplicates()
```
一个班级有23个学生,其中2个人生日相同几率有多大?随机生成23个同学的生日样本,并检查是否有相同几率。
```
def random_bdays(n):
t = []
for i in range(n):
t.append(random.randint(1,365))
return t
print random_bdays(23)
def count_sambday(stu):
count = 0
for i in range(365):
t = random_bdays(stu)
if has_duplicates(t):
count +=1
return count
print count_sambday(23) ```
并写一个remove_duplicates接受一个列表,返回一个新列表,其中只包含原始列表中的每个元素 唯一一份。
```
def remove_duplicates(list):
r = []
for i in list:
if r.count(i)
页:
[1]