码迷,mamicode.com
首页 > 编程语言 > 详细

Python_基础_(列表,元组,字典)

时间:2018-11-20 22:55:11      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:round   efault   copy   opened   traceback   参数   括号   cal   示例   

一,列表

  ################## 列表中的基本操作 ################## 

  1.列表的基本形式

Li = [1,2,3,”henry”,”hello”,[“hhhh”,”aaaa”]]

# 用中括号括起来

# 利用逗号分割每个元素

# 列表是有序的

# 列表中的元素可以是数字,字符串,也可以嵌套列表,也可以是布尔值

  2.列表为可迭代类型,支持for循环,也支持whilw循环

  3.列表的存储与字符串的存储方式不同,列表通过链表进行存储,不需要连续的空间,列表元素可在原列表中进行修改,不必创建新的列表(对字符串的修改相当于创建新的空间来存放字符串)

  4.列表索引或切片

  5.用索引来删除元素  del [1]

  6.利用切片来删除元素  del [0:3]

  7.in   操作 # 判断一个元素或字符串是否在列表中

>>> test = ["aaa","b","ccc",1,2,3,]
>>> a = "aaa" in test
>>> a
True
>>> 

  8.将一个字符串转为列表(不能对数字进行for循环,所以不能将数字转为列表)

>>> test = "helloworld"
>>> new_test = list(test)
>>> new_test
[h, e, l, l, o, w, o, r, l, d]
>>> 

  9.将字符串进行拼接

test_list = [11,22,33,"hello","world"]
s = " "
for item in test_list:
    s = s + str(item)
print(s)

# 输出
112233helloworld

################################ 当列表中只包含字符串时,有数字时不能用join进行拼接
test_list = ["hello","world"]
print(",".join(test_list))

# 输出为
hello,world

   ################## 列表中的方法 ################## 

  1.test.append(x)  # 在列表test后追加元素x

  2.test.clear()  # 清空列表

  3.test_new = test.copy()  # 浅拷贝

  4.test.count(x)  # 计算列表中元素x的出现次数,不带参数则报错

  5.append() 和 extend() 的区别

# append()    
# 将括号中的列表当成一个元素
>>> test = [1,2,3,4,5]
>>> test.append([111,"hello"])
>>> test
[1, 2, 3, 4, 5, [111, hello]]

# extend()
# 将列表的每个元素插入
>>> test = [1,2,3,4,5]
>>> test.extend([111,"hello"])
>>> test
[1, 2, 3, 4, 5, 111, hello]
>>> 

# 插入字符串
test.extend("aaa")    # [1, 2, 3, 4, 5, ‘a‘, ‘a‘, ‘a‘]
test.append("aaa")    # [1, 2, 3, 4, 5, ‘aaa‘]

  6.test.index(a,start=None,end=None)  # 查找,找到第一个就停止查找,指定开始statrt,结束end位置,返回索引值

  7.test.insert(0,99)  # 在指定的位置插入指定元素,在索引0处插入元素99,原先索引位置的元素往后移

  8.a = test.pop(x)  # 删除索引x处的元素(默认删除最后一个元素),并返回当前被删除的值

>>> test = [1,2,3,4,5]
>>> a = test.pop(2)
>>> a
3

  9.test.remove(a)  # 删除列表中指定的元素 a,删除列表从左到右第一个元素a

  10.test.reverse()  # 将列表test反转

>>> test = [1,2,3,2,4,5]
>>> test.reverse()
>>> test
[5, 4, 2, 3, 2, 1]
>>> 

  11.test.sort()  # 将当前列表进行排序,默认从小到大,括号中可指定从大到小  reverse=True

二,元组

   1.基本形式:tu = (11,22,33,44,55)

  2.特性:元素不能被修改,不能增加或删除元素,元组为有序的

  3.一般写元组时,在元组的最后加上一个","(对长度没有影响) 用来区别元组和方法

  4.对元组进行切片,索引 tu[1:2]  tu[0]

  5.元组/列表/字符串,三者之间可以进行相互转换 

技术分享图片
# 元组->列表
tu = (1,2,4,"111","hello")
li = list(tu)
print(li)    
# [1, 2, 4, ‘111‘, ‘hello‘]


# 列表->元组
li = [1,2,4,"111","hello"]
tu = tuple(li)
print(tu)
# (1, 2, 4, ‘111‘, ‘hello‘)


# 列表->字符串
li = [1,2,4,"111","hello"]
s = str(li)
print(s)
# [1, 2, 4, ‘111‘, ‘hello‘]


# 字符串->列表
s = "1,2,4,111,hello"
li = list(s)
print(li)
# [‘1‘, ‘,‘, ‘2‘, ‘,‘, ‘4‘, ‘,‘, ‘1‘, ‘1‘, ‘1‘, ‘,‘, ‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘]


# 元组->字符串
tu = (1,2,4,"111","hello")
s = str(tu)
print(s)
#(1, 2, 4, ‘111‘, ‘hello‘)


# 字符串->元组
s = "1,2,4,111,hello"
tu = list(s)
print(tu)
# [‘1‘, ‘,‘, ‘2‘, ‘,‘, ‘4‘, ‘,‘, ‘1‘, ‘1‘, ‘1‘, ‘,‘, ‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘]
转换示例

   6.元组的一级元素不可被修改/删除/增加

>>> tu = (1,"hello",(11,22),[11,22],True,11)
>>> tu[0] = 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: tuple object does not support item assignment
>>> 

   6.若元组的二级元素不再是元组,则可对其进行修改

>>> tu = (1,"hello",(11,22),[11,22],True,11)
>>> tu[3][0] = 33
>>> tu
(1, hello, (11, 22), [33, 22], True, 11)
>>> 
 三,字典

   1.字典的基本形式:info = {"k1":"v1","k2":"v2"}

  2.字典就是键值对形式:  key:value

  3.注

value:可以是任意值,字符串,元组,列表均可
key:数字,字符串,元组,布尔值(但应注意会和0和1会重复 出现重复只保留其中的一个)
列表不能作为字典key
字典不能作为字典的key

   4.当字典中的键key出现重复时 只保留其中的一个

  5.字典是无序的,例如每次打印出来的顺序会不同

  6.info["k1"] 根据键值对的键来进行查找

  7.因为字典是无序的,所以不能通过切片方式进行查找

  8.对字典进行循环,默认进行循环的是字典的key

for item in info:

print(item) 输出为 k1 k2

for item in info.key:# 取得键值对的键
print(item)

for item in info.value:# 取得键值对的值
print(item)

for k,v in info.items: # 取得键值对
print(k,v)

  ################## 列表中的方法 ##################

  1.a = dict.fromkeys(["k1 ",123,"999"],123)  # 创建一个新的字典,其中键由迭代和值设置为值

(1, hello, (11, 22), [33, 22], True, 11)
>>> a = dict.fromkeys(["k1 ",123,"999"],123)
>>> a
{999: 123, 123: 123, k1 : 123}
>>> 

 

  2.v = info.pop(‘k1‘)  # 删除当前的键值对 并且可以获得当前所删除键值对的值

  3.v = info.popitem()   # 随机删除一个键值对 并返回所删除的值

  4.info.setdefault("k1","hello")

# 设置值 当前的key已经存在的话  获取当前key对应的值
# 如果key不存在的话 设置当前的键值对 并获取当前key 对应的值

# 当key值存在时
info = {"k1":"v1","k2":"v2"}
a = info.setdefault("k1","hello")
print(a)
# 输出为 v1


# 当key不存在时
info = {"k1":"v1","k2":"v2"}
a = info.setdefault("k3","hello")
print(a)
# 输出为 hello

 

  5.info.update({"xxx":"yyy"})  # 更新当前字典

info = {"k1":"v1","k2":"v2"}
a = info.update({"k3":"hello"})
print(info)

# 输出 {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: ‘hello‘}

 

  6.根据key获取值,存在时,返回该值,当key不存在时,返回None

info = {"k1":"v1","k2":"v2"}
v = info.get(k5)
print(v) # 输出的结果为 v1

未完待续.....

 

Python_基础_(列表,元组,字典)

标签:round   efault   copy   opened   traceback   参数   括号   cal   示例   

原文地址:https://www.cnblogs.com/Doaoao/p/9986582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!