Python篇-列表,元组,字典的应用

一 : 列表

  • 基本操作

列表 : 是由一系列按特定顺序排列的元素组成,用[]来表示列表,并用,来分隔其中的元素
列表中的元素可以是 数字,字符串,列表,布尔值,所有的都能放进去,列表是有序的,元素可以被修改

li = [1, 12, 9, "age", ["王总好", "雪芙"], "美丽"]

列表中的元素可以迭代,就是可以循环的意思啦

for item in li:
    print(item)

列表取索引值

print(li[0])

切片取值

print(li[0:-1])

列表元素,可以被修改

li[1] = 120

根据下标删除某个元素

del li[1]

切片方式修改列表元素

li[0:2] = [100, 200]

切片方式删除列表元素

del li[2:4]
print(li)
[1, 12, ['王总好', '雪芙'], '美丽']

使用 in 查看某元素是否在列表中

 v = 12 in li
 print(v)
True
  • 列表转换

将字符串转换成列表,内部使用for 循环

s = "sdfjkldsfkljdsfj"
new_li = list(s)
print(new_li)
['s', 'd', 'f', 'j', 'k', 'l', 'd', 's', 'f', 'k', 'l', 'j', 'd', 's', 'f', 'j']

数字不能被迭代(不能转成list)

for item in list(123):
    print(item)
TypeError: 'int' object is not iterable

列表转换成字符串形式

li = [11, 22, 33, "123", "tz"]
r = str(li)
print(r)
[1, 12, 9, 'age', ['王总好', '雪芙'], '美丽']

列表转换成我们平时连在一起的字符串,需要自己写for循环(列表即有数字,又有字符串)

1129age['王总好', '雪芙']美丽

列表转换成字符串,列表中只有字符串时候的方法,join在内部也是for循环,循环每一个元素与前面进行拼接

li2 = ["123", "zzz"]
v = "".join(li2)
print(v)
123zzz
  • 列表常用方法

( 1 )追加方法
li = [55, 11, 22, 33, 44]
li.append(55)
li.append("tz")
[55, 11, 22, 33, 44, 55, 'tz']
( 2 )清空列表
li.clear()
print(li)
[]
( 3 )拷贝/复制(浅拷贝)
v = li.copy()
print(v)
( 4 )计算每个元素的次数
v = li.count(22)
print(v)
( 5 )extend,参数-可迭代对象
li.extend([9898, "lala"])
li.extend("厉害了")
print(li)
[55, 11, 22, 33, 44, 9898, 'lala', '厉', '害', '了']

与append区别

li.append([9898, "lala"])
print(li)
[55, 11, 22, 33, 44, [9898, 'lala']]
( 6 )索引位置,根据值获取当前索引位置(有同值情况下左边优先)
v = li.index(11)
print(v)
( 7 )插入,在指定索引位置插入值
li.insert(0, "DJB")
 print(li)
['DJB', 55, 11, 22, 33, 44]
( 8 )pop ,删除指定索引值,并获取删除当前值,没有参数默认删除最后一个元素
v = li.pop()
print(li)
print(v)
[55, 11, 22, 33]
44
( 9 )remove ,删除指定值
li.remove(33)
( 10 )列表反转
li.reverse()
print(li)
(11)sorted 排序,默认从小到大
li.sort()
print(li)
[11, 22, 33, 44, 55]
li.sort(reverse=True)
print(li)
[55, 44, 33, 22, 11]

二 : 元组

  • 基本操作

相比于列表,元组不可以被修改,并且元组不能被增加或者删除
注意 : 在写元组的时候最后加一个,

tu = (111, 111, 22, 33, ["66", "77"], "狗", (11, 22),)

索引

v = tu[0]
print(v)

切片

v = tu[0:2]
print(v)
(111, 111)

可以被for 循环

for item in tu:
    print(item)
  • 转换

字符串,列表,与元组之间的转换

s = "sdfsdflksdf"
li = ["11", 22]
print(tuple(s))
print(tuple(li))
print(list(tu))
('s', 'd', 'f', 's', 'd', 'f', 'l', 'k', 's', 'd', 'f')
('11', 22)
[111, 111, 22, 33, ['66', '77'], '狗', (11, 22)]

只有字符串的元组可以使用join拼接成字符串,但有数字的元组要用for循环

tu1 = ("11", "2sdf", "ee")
v = "_".join(tu1)
# print(v)
11_2sdf_ee

元组也是可迭代对象

li.extend(tu)
print(li)

元组和列表一样是有序的

print(tu[4][1])
77

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

tu[0] = 123 //报错
  • 元祖常用方法

( 1 )count 获取指定元素在元组中出现的次数
print(tu.count(22))
( 2 )index 获取某个元素在元组中的下标
print(tu.index(22))

三 : 字典

字典是一系列键值对,每个键都与一个值相关联,可以使用键来访问与之关联的值,与键相关联的值可以是数字,字符串,列表,字典,可以将任何值作为字典的值

  • 基本操作

info1 = {
    "k1": 18,
    "k2": True,
    "k3": [11, 22, 33, {"kk1": "vv1"}],
    "k4": (11, 22, 33, 44)
}
print(info1)
{'k1': 18, 'k2': True, 'k3': [11, 22, 33, {'kk1': 'vv1'}], 'k4': (11, 22, 33, 44)}

列表,字典不能作为字典的key (哈希问题),布尔值作为key 可能会与 key 为1或者0的值重复

info2 = {
    1: 'aaa',
    "k": "kkk",
    True: "123",
    # [11, 22]: 123,
    (1, 2, 3): "ddf",
    # {'k1': 'v1'}: 123,
}
print(info2)
{1: '123', 'k': 'kkk', (1, 2, 3): 'ddf'}

访问

info2['k']

字典是无序的

v = info2[1]
print(v)
123

删除

del info2["k"]
 print(info2)
{1: '123', (1, 2, 3): 'ddf'}

循环,默认循环所有的key

for item in info2:
    print(item)
1
k
(1, 2, 3)

等同于

for item in info2.keys():
    print(item)

循环values

 for value in info2.values():
   print(value)
123
kkk
ddf

循环key,value

for k, v in info2.items():
    print(k, '+++', v)
1 +++ 123
k +++ kkk
(1, 2, 3) +++ ddf
  • 字典常用方法

( 1 )clear
info2.clear()
{}
( 2 )浅拷贝
info2.copy()
( 3 )fromkeys 根据序列创建字典,并指定统一的值
dic = {'tz': '帅', 'zz': '酷'}
v1 = dic.fromkeys(["k1", 123, "999"], 111)
print(v1)
{'k1': 111, 123: 111, '999': 111}
( 4 )get 根据key获取值,更安全,key没有根据后面参数创建,默认值为None
v2 = info2.get('1111', 111)
print(v2)
111
( 5 )指定某一个key 删除掉,并获取值,key没有根据后面参数创建
v3 = info2.pop('ke1111', 123)
print(v3)
( 6 )随机删除,并获取值
key, value = info2.popitem()
item = info2.popitem()
print(info2, '++', key, '++', value, '++', item)
{1: '123'} ++ (1, 2, 3) ++ ddf ++ ('k', 'kkk')
( 7 )setDefault 设置值,如果已经存在,不设置,获取当前key对应的值,如果不存在,设置, 获取当前key对应的值
v5 = info2.setdefault('傻啊', '哦哦哦')
print(info2, '++', v5)
{1: '123', 'k': 'kkk', (1, 2, 3): 'ddf', '傻啊': '哦哦哦'} ++ 哦哦哦
( 8 )update 已经存在更新,不存在则添加进去
info2.update({'吴亦凡': 666, 1: '新的'})
print(info2)
{1: '新的', 'k': 'kkk', (1, 2, 3): 'ddf', '吴亦凡': 666}
info2.update(吴亦凡=666, k4='zzzz' , g = 3)
print(info2)
{1: '123', 'k': 'kkk', (1, 2, 3): 'ddf', '吴亦凡': 666, 'k4': 'zzzz', 'g': 3}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • 本节要介绍的是Python里面常用的几种数据结构。通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组...
    小黑y99阅读 65,160评论 0 9
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,785评论 17 410
  • ​每天都有很多糟心的事发生,每天都有些让我们不愉快的事情发生,转身的对不起,有时也换不来一句没关系。 不是所有的事...
    A花糖糖阅读 1,928评论 0 0
  • 他从医院走了出来。阳光灼得他眼珠生疼。他闭上了眼,无数光斑还在眼前杂乱地跳动,像老电视上密密麻麻的颗粒。他感到一阵...
    枝上花阅读 318评论 0 1
  • 段子小王决定送个戒指给自己的女神,可忙坏了老妈,总算弄到适合小女生戴的了。 段子小王激动极了! 段子小王:妈妈,要...
    欣橼阅读 215评论 0 0