zoukankan      html  css  js  c++  java
  • python元组数据类型讲解

    元组可以被看成是不能改变的列表。列表是动态的,你可以增添,插入,删除,更改列表元素。有时我们需要这样的操作,但是有些时候我们需要保证有些数据是不能被用户或程序更改的。这就是元组的作用。

    准确的说,列表是可变对象,元组是不可变对象。

    定义和访问元组

    元组的定义和列表相似,只是列表是用方括号定义,元组是用圆括号定义的。一旦定义好元组,可以像访问列表那样访问元组元素,并且可以使用 for 循环。

    colors  =  ('red',  'green',  'blue')
    print("The first color is: " + colors[0])
    
    print("
    The available colors are:")
    for color in colors:
        print("- " + color)

    如果尝试向元组中添加元素,会得到一个错误。

    colors = ('red', 'green', 'blue')
    colors.append('purple')

    同样的,其他操作也会导致错误。一旦定义好一个元组,它就不会被改变。

    元组生成字符串

    我们知道混合英文字符和存储字符串的变量是相当有用的,如下所示:

    animal = 'dog'
    print("I have a " + animal + ".")

    当我们想要生成一系列的语句的时候,这种方式是不错的生成方式。如下所示:

    animals = ['dog', 'cat', 'bear']
    for animal in animals:
        print("I have a " + animal + ".") 

    我们用加号来实现,这种方法是符合直觉的,但不够简洁。使用占位符就能使代码更简洁。

    Python 通常会忽略掉我们放进字符串的字符,但是它会对少许字符格外注意。例如 " " 和 " "。Python 同样也会注意到 "%s" 和 "%d"。它们被称为占位符。当 Python 看到了 "%s" 占位符,它就会找到 % 后的第一个参数填充进占位符。如下所示:

    animal = 'dog'
    print("I have a %s." % animal) 

    这是一种相当简洁的方法来生成包含变量的字符串。我们将句子写进一条字符串中,然后告诉 Python 我们需要什么值嵌入到字符串的指定位置中。

    这种方法被称为格式化字符串(string formatting)。如果你有不止一个数据要填充进字符串中,你需要将参数放进元组中。如下所示:

    animals = ['dog', 'cat', 'bear']
    print("I have a %s, a %s, and a %s." % (animals[0], animals[1], animals[2]))

    包含数字的格式化字符串

    如果你想打印一个包含数字的字符串,如下所示:

    number = 23
    print("My favorite number is " + number)

    上述代码会报错。Python 不知道你指的是值为23还是作为字符串的“23”。如果你想让 Python 以字符串的形式对待这个变量,我们需要用到 str() 函数将数字转为字符串。如下所示:

    number = 23
    print("My favorite number is " + str(number) + ".")

    如果要用格式化的字符串,"%d" 会帮助到我们。如下所示:

    number = 23
    print("My favorite number is %d." % number) 

    同理,想嵌入多个数字,只需要将参数放进元组里。如下所示:

    numbers = [7, 23, 42]
    print("My favorite numbers are %d, %d, and %d." % (numbers[0], numbers[1], numbers[2]))
    

    也可以混合使用字 符串和数字占位符。不再赘述。在 Python 3 中还有很多复杂的方法做字符串格式化。

    本文转载于https://www.py.cn/jishu/jichu/10536.html

  • 相关阅读:
    luogu 1865 数论 线性素数筛法
    洛谷 2921 记忆化搜索 tarjan 基环外向树
    洛谷 1052 dp 状态压缩
    洛谷 1156 dp
    洛谷 1063 dp 区间dp
    洛谷 2409 dp 月赛题目
    洛谷1199 简单博弈 贪心
    洛谷1417 烹调方案 dp 贪心
    洛谷1387 二维dp 不是特别简略的题解 智商题
    2016 10 28考试 dp 乱搞 树状数组
  • 原文地址:https://www.cnblogs.com/jsdd/p/11514396.html
Copyright © 2011-2022 走看看