专栏首页李智的专栏Python中复合数据类型(list,turple以及切片,循环等操作)

Python中复合数据类型(list,turple以及切片,循环等操作)

本教程参考网上的一些资料,如有侵权,请联系删除

列表list

list是一种有序的集合,可以随时添加和删除其中的元素。 列表的表示形式如下

c = ['A', 'B', 'C']
print c #输出['A', 'B', 'C']
  • 可用len()函数可以获得list元素的个数:len(c)
  • 可用索引来访问list中每一个位置的元素:c[0],c[1]
  • 如果要取最后一个元素,还可以用-1做索引,直接获取倒数第一个元素:c[-1] ,倒数第二个类推c[-2]
  • 可以往list中追加元素到末尾
c.append('D')
print c #输出['A', 'B', 'C','D']
  • 也可以把元素插入到指定的位置
c.insert(1, 'E')
print c #输出['A', 'E', 'B', 'C', 'D']
  • 也可以删除list末尾的元素
c.pop()
print c #输出['A', 'E', 'B', 'C']
  • 也可以把元素替换成别的元素:直接赋值给对应的索引位置
c[1]='F'
print c #输出['A', 'F', 'B', 'C']
  • list里面的元素的数据类型也可以不同,如c=['A',1,True]

元组tuple

tuple称为元组,和list非常类似,但是tuple一旦初始化就不能修改,比如

c=('A','B','C')

现在,c这个tuple不能变了,它没有append(),insert()这样的方法。但你可以使用c[0]c[-1],但不能赋值成另外的元素。 因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。 如果要定义一个空的tuple,可以写成()

>>> a = ()
>>> a
()

但是,要定义一个只有1个元素的tuple,如果你这么定义:a = (5),这样只是定义了5,而不是tuple,正确定义应该为a=(5,)


字典Dictionaries

字典用来储存(键, 值)对。你可以这样使用它:

d = {'cat': 'cute', 'dog': 'furry'}  # 新建字典
print d['cat']       # 通过key(cat)访问; prints "cute"
print 'cat' in d     # 判断字典中是否有key; prints "True"
d['fish'] = 'wet'    # 向字典加入对
print d['fish']      # Prints "wet"
# print d['monkey']  # KeyError: 'monkey' not a key of d
print d.get('monkey', 'N/A')  # Get an element with a default; prints "N/A"
print d.get('fish', 'N/A')    # Get an element with a default; prints "wet"
del d['fish']        # 从字典中移除对
print d.get('fish', 'N/A') # "fish" 不再是key了; prints "N/A"

#循环Loops:在字典中,用键来迭代更加容易。
d = {'person': 2, 'cat': 4, 'spider': 8}
for animal in d:
    legs = d[animal]
    print 'A %s has %d legs' % (animal, legs)
# Prints "A person has 2 legs", "A spider has 8 legs", "A cat has 4 legs"

#如果你想要访问键和对应的值,那就使用iteritems方法:
d = {'person': 2, 'cat': 4, 'spider': 8}
for animal, legs in d.iteritems():
    print 'A %s has %d legs' % (animal, legs)
# Prints "A person has 2 legs", "A spider has 8 legs", "A cat has 4 legs"

#字典推导Dictionary comprehensions:和列表推导类似,但是允许你方便地构建字典。
nums = [0, 1, 2, 3, 4]
even_num_to_square = {x: x ** 2 for x in nums if x % 2 == 0}
print even_num_to_square  # Prints "{0: 0, 2: 4, 4: 16}"

切片

python中切片是一个非常好用的功能,下面从代码说明它的用处

c=['ABCD','ABDE']
print c # 输出['ABC', 'ABD']
print c[0][2:] #输出CD

nums = range(5)    #nums = [0, 1, 2, 3, 4]
print nums[2:4]    # prints "[2, 3]"
print nums[2:]     # prints "[2, 3, 4]"
print nums[:2]     # prints "[0, 1]"
print nums[:]      # prints "[0, 1, 2, 3, 4]"
print nums[:-1]    # prints "[0, 1, 2, 3]"
nums[2:4] = [8, 9] 
print nums         # Prints "[0, 1, 8, 9, 4]"

循环Loops

animals = ['cat', 'dog', 'monkey']
for animal in animals:
    print animal
# Prints "cat", "dog", "monkey", each on its own line.

#如果想要在循环体内访问每个元素的指针,可以使用内置的enumerate函数
animals = ['cat', 'dog', 'monkey']
for idx, animal in enumerate(animals):
    print '#%d: %s' % (idx + 1, animal)
# Prints "#1: cat", "#2: dog", "#3: monkey", each on its own line

列表推导List comprehensions

nums = [0, 1, 2, 3, 4]
squares = [x ** 2 for x in nums]
print squares   # Prints [0, 1, 4, 9, 16]

#列表推导还可以包含条件:
nums = [0, 1, 2, 3, 4]
even_squares = [x ** 2 for x in nums if x % 2 == 0]
print even_squares  # Prints "[0, 4, 16]"

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python pandas教程

    李智
  • Python图像处理常用代码,numpy教程

    李智
  • windows下安装xgboost教程

    我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invi...

    李智
  • Python常见的脚本汇总

    斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13;特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

    py3study
  • python 中输出字符的颜色控制属性

    在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。而一般的应用服务器,第三方库,甚至服务器的一些通告也...

    学到老
  • python_控制台输出带颜色的文字方法

    在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。而一般的应用服务器,第三方库,甚至服务器的一些通告也...

    人生不如戏
  • python 中输出字符的颜色控制属性

    在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。而一般的应用服务器,第三方库,甚至服务器的一些通告也...

    学到老
  • 笨办法学Python - 习题1: A

    在windows上安装完Python环境后,开始按照《笨办法学Python》书上介绍的章节进行练习。

    py3study
  • Python学习之条件,判断,循环语句学习 原

    用户2603479
  • 计算机基础,Python基础--变量以及简单的循环

    一、计算机基础 1.CPU   相当于人体的大脑,用于计算处理数据。 2.内存    用于存储数据,CPU从内存调用数据处理计算,运算速度很快。 PS:问:...

    新人小试

扫码关注云+社区

领取腾讯云代金券