设为首页 收藏本站
查看: 621|回复: 0

[经验分享] 《think in python》学习

[复制链接]
发表于 2015-12-1 15:13:30 | 显示全部楼层 |阅读模式
  think in python 10

列表

  和字符串相似,列表是值得序列。在列表中,它可以是任何类型,列表中的值成为元素,有时也称为列表项

  

    s = [10,20,30,40]  print s
  
#列表也是可嵌套的。
  s = [10,20,30,[2,3,4]]
  print s
  

列表是可变的
  

s = [10,20,30,[2,3,4]]  
print s
  

  
s[1] = 15
  
print s
  

  

  通过操作下班,改变了 列表中的某个值。

遍历一个列表
  

for i in s:  print i
  

  
for i in range(len(s)):
  print s
  

操作列表
  

a = [1,2,3]  
b = [4,5,6]
  
c = a+b
  
print c
  
d = a*4
  
print d
  

  +号操作符可以拼接列表,*号可以重复一个列表多次


列表切片
  切片操作也可以用于列表
  

word = ['a','b','c','d','e','f','g']  
# [start:end:length]
  

  
print word[::-1]
  
print word[:]
  
print word[3:4]
  

列表方法
  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[1]  

  remove可以删掉元素本身
  

word = ['A','B']  
word.remove('A')
  

  删除多个 可以利用 del配合 切片进行
  

del word[1:5]  

列表和字符串

  字符串是 字符的序列, 列表是值的序列。

  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([[1,2,3,4],[3,2,4,5]])  ```
  

  编写一个函数,接受一个数字列表,并返回其积累和,即一个新的列表,期第i位元素是原始列表的前i+1元素的和
  ```
  def sum_list(list):
  r = []
  for i in list:
  r.append(sum(list[:i]))
  return r

print sum_list([1,2,3])  ```
  

写一个middle函数,接受一个列表作为形参,返回一个新列表。包含除了第一个和最后一个元素之外的所有元素  def middle(n):         return n[1:len(n)-1]
  

编写一个chop函数,接受一个列表,修改它,删除它第一个和最后一个元素 并返回None  def chop(list):         del list[0]         del list[len(list)-1]         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[i+1]:
  return True
  

return False  
print has_duplicates([1,2,3,4,5])
  ```
  

  一个班级有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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145986-1-1.html 上篇帖子: Python爬虫爬取贴吧的帖子内容 下篇帖子: Python学习笔记七-错误和异常
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表