Python的数据类型(超详细)

Python的数据类型

在本教程中,您将了解可以在Python中使用的不同数据类型。

Python中的数据类型

Python中的每个值都有一个数据类型。因为在Python编程中所有东西都是对象,所以数据类型实际上是类,变量是这些类的实例(对象)。 Python中有各种数据类型。

下面列出了一些重要的类型。

Python的数字

整数、浮点数和复数属于Python数字类别。它们在Python中被定义为int、float和复杂类。

我们可以使用type()函数来知道一个变量或值属于哪个类。

类似地,isinstance()函数用于检查一个对象是否属于某个特定的类。

a = 5
print(a, "is of type", type(a))

a = 2.0
print(a, "is of type", type(a))

a = 1+2j
print(a, "is complex number?", isinstance(1+2j,complex))

Output

5 is of type <class 'int'>
2.0 is of type <class 'float'>
(1+2j) is complex number? True

整数可以是任何长度,它只受可用内存的限制。

浮点数的精度最高可达小数点后15位。整数和浮点数用小数点隔开。1是整数,1.0是浮点数。

复数的形式是x + yj,其中x是实部,y是虚部。下面是一些例子。

>>> a = 1234567890123456789
>>> a
1234567890123456789
>>> b = 0.1234567890123456789
>>> b
0.12345678901234568
>>> c = 1+2j
>>> c
(1+2j)

注意float变量b被截断了。

Python的列表-List

列表是项目的有序序列。它是Python中最常用的数据类型之一,并且非常灵活。

列表中的所有项不需要具有相同的类型。

声明一个列表是非常直接的。用逗号分隔的项用括号[]括起来。

a = [1, 2.2, 'python']

我们可以使用切片操作符[]从列表中提取一项或一组项。在Python中,索引从0开始。

a = [5,10,15,20,25,30,35,40]

# a[2] = 15
print("a[2] = ", a[2])

# a[0:3] = [5, 10, 15]
print("a[0:3] = ", a[0:3])

# a[5:] = [30, 35, 40]
print("a[5:] = ", a[5:])

Output

a[2] =  15
a[0:3] =  [5, 10, 15]
a[5:] =  [30, 35, 40]

列表是可变的,也就是说,列表中元素的值可以被改变。

a = [1, 2, 3]
a[2] = 4
print(a)

Output

[1, 2, 4]

Python的列表-Tuple

Tuple是一种有序的项目序列,与列表相同。

唯一的区别是元组是不可变的。元组一旦创建就不能修改。

元组用于写保护数据,通常比列表更快,因为它们不能动态更改。

它是在圆括号()中定义的,其中项目用逗号分隔。

t = (5,'program', 1+3j)

可以使用切片操作符[]来提取项,但不能更改其值。

t = (5,'program', 1+3j)

# t[1] = 'program'
print("t[1] = ", t[1])

# t[0:3] = (5, 'program', (1+3j))
print("t[0:3] = ", t[0:3])

# Generates error
# Tuples are immutable
t[0] = 10

Output

t[1] =  program
t[0:3] =  (5, 'program', (1+3j))
Traceback (most recent call last):
  File "test.py", line 11, in <module>
    t[0] = 10
TypeError: 'tuple' object does not support item assignment

Python的字符串-String

字符串是Unicode字符序列。我们可以使用单引号或双引号来表示字符串。多行字符串可以用三重引号表示," '或"""

s = "This is a string"
print(s)
s = '''A multiline
string'''
print(s)

Output

This is a string
A multiline
string

就像列表和元组一样,切片操作符[]也可以用于字符串。然而,字符串是不可变的。

s = 'Hello world!'

# s[4] = 'o'
print("s[4] = ", s[4])

# s[6:11] = 'world'
print("s[6:11] = ", s[6:11])

# Generates error
# Strings are immutable in Python
s[5] ='d'

Output

s[4] =  o
s[6:11] =  world
Traceback (most recent call last):
  File "", line 11, in <module>
TypeError: 'str' object does not support item assignment

Python的字符串-Set

Set是唯一项的无序集合。Set由大括号{}内用逗号分隔的值定义。集合中的项是无序的。

a = {5,2,3,1,4}

# printing set variable
print("a = ", a)

# data type of variable a
print(type(a))

Output

a =  {1, 2, 3, 4, 5}
<class 'set'>

我们可以对两个集合进行集合运算,比如并集,交集。集合具有唯一的值。他们消除重复。

a = {1,2,2,3,3,3}
print(a)

由于集合是无序集合,索引没有任何意义。因此,切片操作符[]不起作用。

>>> a = {1,2,3}
>>> a[1]
Traceback (most recent call last):
  File "", line 301, in runcode
  File "", line 1, in <module>
TypeError: 'set' object does not support indexing

Python的字典-Dict

Dictionary是键值对的无序集合。 当我们有大量的数据时,它通常被使用。字典为检索数据进行了优化。我们必须知道检索值的键。 在Python中,字典定义在大括号{}中,每一项都是form key:value中的一对。键和值可以是任何类型。

>>> d = {1:'value','key':2}
>>> type(d)
<class 'dict'>

我们使用key检索相应的值。但不是反过来。

d = {1:'value','key':2}
print(type(d))

print("d[1] = ", d[1])

print("d['key'] = ", d['key'])

# Generates error
print("d[2] = ", d[2])

Output

<class 'dict'>
d[1] =  value
d['key'] =  2
Traceback (most recent call last):
  File "", line 9, in <module>
KeyError: 2

数据类型之间的转换

我们可以通过使用不同的类型转换函数(如int()、float()、str()等)在不同的数据类型之间进行转换。

>>> float(5)
5.0

从float到int的转换将截断值(使其接近0)。

>>> int(10.6)
10
>>> int(-10.6)
-10

与字符串之间的转换必须包含兼容的值。

>>> float('2.5')
2.5
>>> str(25)
'25'
>>> int('1p')
Traceback (most recent call last):
  File "", line 301, in runcode
  File "", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1p'

我们甚至可以把一个序列转换成另一个序列。

>>> set([1,2,3])
{1, 2, 3}
>>> tuple({5,6,7})
(5, 6, 7)
>>> list('hello')
['h', 'e', 'l', 'l', 'o']

要转换为dictionary,每个元素必须是一对:

dict([[1,2],[3,4]])
{1: 2, 3: 4}
dict([(3,26),(4,44)])
{3: 26, 4: 44}

你可能感兴趣的:(Python杂货店,python)