天空下的承诺 发表于 2015-12-1 15:13:30

《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]
查看完整版本: 《think in python》学习