python讲稿1(list,tuple,dict)

python变量类型

python变量不需要类型声明.

变量分为可变数据类型和不可变数据类型,那么都有哪些呢?

可变数据类型:list(列表)、dict(字典)、set(集合,不常用)

不可变数据类型:数值类型(int、float、bool)、string(字符串)、tuple(元组)

1. 基本类型
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串
2. 字符串
s='runnoob'

字符串的索引有2中顺序:

  • 从左到右索引默认0开始的
  • 从右到左索引默认-1开始的
    runoob
    [头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。
s='abcdef'
print(s[0])  # 'a'
print(s[1:5]) # 'bcde'
print(s[-1]) # s[-1]='f'
s[0:-1] # 'abcde'
s[1:4:2] # 结果为'bd',其中s[1:4:2]中的2表示步长 

#字符串的+,*
s1='hello'
s2='world'
print(s1+s2) # 'helloworld'
print('ni'+' hao') # 'ni hao'
print('a'*5)  # 'aaaaa'
3. 需要掌握list,tuple,dict
3.1 list(可变变量)
list1=[2,3,4,5,6]
list1[0] # 2
list1[1]=7 # list1[1]赋值为7
list1[1:3] # [3,4]
list1[2:] # [4,5,6]
# list中可以是不同的数据类型,如下:  
list1 = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
list1 = [123, 'john']

注意: list中append函数和extend函数的区别。

list1=[2,3,4]
list2=[1,5,7]
list3=list1.append(list1)
print(list3) # [2,3,4,[1,5,7]]
list4=list1.extend(list2)
print(list4) # [2,3,4,1,5,7]
3.2 tuple元组(不可变变量)

tuple类似于list,要注意tuple和list的不同

t1 = ( 'runoob', 786 , 2.23, 'john', 70.2 )
t1[0] # 'runoob'
t1[1:3] # (786,2.23)
t1[2:] # (2.23,'join',70.2)
t1[2]=10 # 不可,元组不可更改

注意: 要定义一个只有1个元素的tuple,如果你这么定义:

>>> t = (1)
>>> t
1

定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。

所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

>>> t = (1,)
>>> t
(1,)
3.3 dict字典
d1 = {}
d1['one'] = "This is one"
d1[2] = "This is two"
print(d1['one'])      # 输出键为'one' 的值
print(d1[2])          # 输出键为 2 的值

d2 = {'name': 'john','code':6734, 'dept': 'sales'}
print(d2)             # 输出完整的字典
print(d2.keys())      # 输出所有键
print(d2.values())    # 输出所有值
print(d2.items())

注意: 遍历字典的方法,使用d2.items()

d2 = {'name': 'john','code':6734, 'dept': 'sales'}
for k,v in d2.items(): # 这里必须是d2.items(),不能直接写d2
    print(k,'--->',v)

4 可变变量和不可变变量

可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址不发生改变,那么这个数据类型就是可变数据类型

不可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址发生了改变,那么这个数据类型就是不可变数据类型

总结:可变数据类型更改值后,内存地址不发生改变。不可变数据类型更改值后,内存地址发生改变。

代码举例说明.

4.1 数值数据类型

# 数值数据类型
number = 1
print(id(number),type(number))
 
number = 2    # 重新赋值
print(id(number),type(number))
 
# 结果
1738921008 <class 'int'>
1738921024 <class 'int'>

总结:数值数据类型,同一个变量,一旦重新赋值,内存地址就会发生改变。

4.2 字符串数据类型

# 字符串数据类型
name = 'Super Man 超人'
print(id(name),type(name))
 
name = 'Iron Man 钢铁侠'
print(id(name),type(name))
 
# 结果
56870552 <class 'str'>
64772320 <class 'str'>

总结:字符串数据类型,同一个变量,一旦重新赋值,内存地址就会发生改变。

作业:
请用索引取出下面list的指定元素:

L = [
    ['Apple', 'Google', 'Microsoft'],
    ['Java', 'Python', 'Ruby', 'PHP'],
    ['Adam', 'Bart', 'Lisa']
]
# 打印Apple:
print(?)
# 打印Python:
print(?)
# 打印Lisa:
print(?)
发布了14 篇原创文章 · 获赞 24 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xxuffei/article/details/104635853