Day 03 : Python 基础观念 (2)

昨天初步认识 python 怎麽设定变数的操作,今天我们要聚焦在串列、字典、字串的操作,东西有点多XD 大家实际把程序码执行看看会更有感觉!

串列(List)

认识串列

串列可以一次储存相当多的资料,每个资料我们称为元素,元素可以是字串、整数、浮点数,甚至也可以是串列、字典哦!
串列这边我们使用的是中括号 []

# integer
list_1 = [1, 2, 3, 4, 5]
# string
list_2 = ['1', '2', '3']
# 来点混搭风如何?
list_3 = [1, '1', '1.0']
# 串列的串列的串列?
list_4 = [1, [1, [1]]]
# 串列也可以是空的
list_5 = []

读取串列

定义完之後我们要怎麽读取它呢?我们可以用索引值的方式去做读取。请记得索引值是从零开始(不是动漫啦)计算切片哦!

x = [1, 2, 3, 4, 5]
# 我要第一个数字
print(x[0])
# 我要最後一个数字
print(x[4])

啊难道我要傻傻地去数有几个吗?当然不用!倒过来数就好了XD

x = [1, 2, 3, 4, 5]
# 我要最後一个数字
print(x[-1])

当然你也可以知道串列长度之後减1(但应该没有人这样写,有点冗XD)

x = [1, 2, 3, 4, 5]
# 我要最後一个数字
print(x[len(x)-1])

串列切片

接着我们只想取得串列中几个元素,那要怎麽操作呢?
这边大家实际操作会比较有心得,切记从零开始XD

x = [1, 2, 3, 4, 5]

# 取索引值前3,索引值是 0 1 2
x[:3]
>>> [1, 2, 3]

# 从索引值1开始到索引值4,索引值是1 2 3
x[1:4]
>>> [2, 3, 4]

# 取得串列最後第 n 个 
x[-2:]
>>> [4, 5]

# 每隔 step 从 start 开始到 end-1
# [start:end:step]
x[1:4:2]
>>> [2, 4]

搭配运算

可以使用 python 内建的函式,自己就不用额外写哦~

# sum
x = [1, 2, 3, 4, 5]
sum(x)
>>> 15

# max
max(x)
>>> 5

# min
min(x)
>>> 1

也可以搭配 numpy 套件

import numpy as np

x = [1, 2, 3, 4, 5]

# 中位数
np.median(x)
>>> 3.0

# 平均数
np.mean(x)
>>> 3.0

增加或删除元素

在最後加上一个元素

x = [1, 2, 3, 4, 5]
x.append(6)
print(x)
>>> [1, 2, 3, 4, 5, 6]

任意位置插入元素

x = [1, 2, 3, 4, 5]
x.insert(3, 6)
print(x)
>>> [1, 2, 3, 6, 4, 5]

删除元素

x = [1, 2, 3, 4, 5]
x.pop()
print(x)
>>> [1, 2, 3, 4]

删除指定元素

x = [1, 2, 3, 4, 5]
x.pop(3)
print(x)
>>> [1, 2, 3, 5]

当不知道元素索引值的时候,可使用这方法直接删除元素

x = [1, 2, 3, 4, 5]
x.remove(3)
print(x)
>>> [1, 2, 4, 5]

颠倒排序

两种方法都可以

x = [1, 2, 3, 4, 5]
print(x[::-1])
>>> [5, 4, 3, 2, 1]
x = [1, 2, 3, 4, 5]
x.reverse()
print(x)
>>> [5, 4, 3, 2, 1]

排序

递增

x = [9, 4, 6, 10, 8]
x.sort()
print(x)
>>> [4, 6, 8, 9, 10]

递减

x = [9, 4, 6, 10, 8]
x.sort(reverse=True)
print(x)
>>> [10, 9, 8, 6, 4]

请留意 sort 方法会造成该 list 顺序永久更改,我们可以用 sorted 来赋值到新变数

x = [9, 4, 6, 10, 8]
y = sorted(x)
print('Before:', x)
print('After:', y)
>>> Before: [9, 4, 6, 10, 8]
>>> After: [4, 6, 8, 9, 10]

字典(Dict)

字典与串列不同,它无法给予索引值(0, 1, 2... ) 这些来取得,而是透过所谓的 key 对应到 value。
字典是使用大括号 {"key": "value"}

dict_1 = {}
dict_2 = {"banana": 10, "apple": 20, "lemon": 30}

回传字典的值

fruit_price_dict = {"banana": 10, "apple": 20, "lemon": 30}
print(f"The price of banana is:", fruit_price_dict["banana"])
>>> The price of banana is: 10

加上新的元素

fruit_price_dict = {"banana": 10, "apple": 20, "lemon": 30}
fruit_price_dict["orange"] = 50
print(fruit_price_dict)
>>> {'banana': 10, 'apple': 20, 'lemon': 30, 'orange': 50}

更新 value

fruit_price_dict = {'banana': 10, 'apple': 20, 'lemon': 30, 'orange': 50}
fruit_price_dict["orange"] = 60
print(fruit_price_dict)
>>> {'banana': 10, 'apple': 20, 'lemon': 30, 'orange': 60}

删除指定元素

fruit_price_dict = {'banana': 10, 'apple': 20, 'lemon': 30, 'orange': 50}
del fruit_price_dict["orange"]
print(fruit_price_dict)
>>> {'banana': 10, 'apple': 20, 'lemon': 30}

字串

回顾串列的观念,我们教了串列有索引值,但其实也可以应用在字串当中哦!

切片处理

string = 'PythonGO!'
print(string[0])
>>> P
print(string[6:])
>>> GO!

转成字串

string = 'PythonGO!'
list(string)
>>> ['P', 'y', 't', 'h', 'o', 'n', 'G', 'O', '!']

分隔处理

在处理资料常常会需要用到这招哦!

string = 'I want to play a game!'
string.split(' ')
>>> ['I', 'want', 'to', 'play', 'a', 'game!']

合并处理

string = ['I', 'want', 'to', 'play', 'a', 'game!']
' '.join(string)
>>> 'I want to play a game!'

<<:  自动化测试,让你上班拥有一杯咖啡的时间 | Day 1 - 前言

>>:  Day7-Go回圈

Day26,Kubecost 体验,算钱好难......

正文 kubectl create ns kubecost wget https://raw.git...

33岁转职者的前端笔记-DAY 16 使用 jQuery 写出动画效果

新增画面及移除画面 点击show时会呈现以下结果: 点击hide时会呈现以下结果(消失了): jQu...

Day 15 - Rancher 与 Infrastructure as Code

本文将於赛後同步刊登於笔者部落格 有兴趣学习更多 Kubernetes/DevOps/Linux 相...

Day9. functional programming in Ruby - Block Part2

初来乍到Ruby世界的读者们,绝对想不到原来Ruby 也有 curry, bind 等用法。这些语法...

【Day05】数据输入元件 - Input Text / Text Field

元件介绍 Input 是一个输入元件。通常在我们希望用户能够输入一些资讯的时候会需要用到它。由於原生...