这个是为准备考研复试,希望做一个textCNN文本情感分析打语言基础的自学笔记。博主本身本科非计算机专业,如果网友们有幸看见本文,博客中内容如有疏漏,不吝赐教。
第2节:列表与元组
2.1 定义列表
列表(List)作为Python中使用最频繁的数据类型,数据格式十分像C/C++当中的数组。专用于存储一串信息,列表使用“[]”定义,数据之间使用“,”分隔,索引从0开始。访问方式和之前所学习的语言一样,具体代码如下:
alphabet = ['ABC','DEF','GHI','JKL']
print(alphabet) #['ABC', 'DEF', 'GHI', 'JKL']
print(alphabet[1]) #DEF
print(alphabet[-1]) #JKL
修改列表也十分简单:
alphabet = ['ABC','DEF','GHI','JKL']
alphabet[2] = '123'
print(alphabet) #['ABC', 'DEF', '123', 'JKL']
但是在列表中似乎并不介意不同类型的数据混合存储,虽然我们一般也不会把不同类型的数据存储在同一个列表当中:
alphabet = ["ABC",123]
print(alphabet) #['ABC', 123]
2.2 列表的几个方法
常见的几个方法和功能如下表:
方法名 | 功能 |
---|---|
append() | 向列表的末尾添加一个元素 |
clear() | 就地情况列表内容 |
copy() | 复制列表,产生一个元素完全相同的新列表 |
count() | 统计列表中某个元素的个数 |
extend() | 从一个可迭代对象中获取元素,将它们追加到已知列表中 |
index() | 检索列表中某个元素第一次出现的下标位置,若没有该元素,则报错 |
insert() | 向列表的任意位置当中添加元素 |
pop() | 删除列表中指定索引的元素,并返回被删除的元素 |
remove() | 函数用于移除列表中某个值的第一个匹配项 |
reverse() | 原地翻转列表,无返回值 |
sort() | 对列表中的元素进行排序,无返回值 |
具体测试代码如:
list_demo = ['ab','cd','ef','gh']
list_demo.append('xyz')
print(list_demo)
list_script = list_demo.copy()
print(list_script)
print(list_script.count('ab'))
list_script.clear()
print(list_script)
print(list_demo.index('cd'))
list_demo.insert(2,'xy')
print(list_demo)
print(list_demo.pop(2))
print(list_demo)
list_demo.remove('xyz')
print(list_demo)
list_demo.reverse()
print(list_demo)
list_demo.sort()
print(list_demo)
输出结果:
['ab', 'cd', 'ef', 'gh', 'xyz']
['ab', 'cd', 'ef', 'gh', 'xyz']
1
[]
1
['ab', 'cd', 'xy', 'ef', 'gh', 'xyz']
xy
['ab', 'cd', 'ef', 'gh', 'xyz']
['ab', 'cd', 'ef', 'gh']
['gh', 'ef', 'cd', 'ab']
['ab', 'cd', 'ef', 'gh']
除了上面所提供的方法之外,也有一些其他值得学习东西。如:del
list_demo = ['ab','cd','ef','gh']
del list_demo[2]
print(list_demo)
以及使用sorted()对列表进行临时的排序:
list_demo = ['FS','TR','AF','RZ']
print(list_demo)
print(sorted(list_demo))
print(list_demo)
#['FS', 'TR', 'AF', 'RZ']
#['AF', 'FS', 'RZ', 'TR']
#['FS', 'TR', 'AF', 'RZ']
2.3 元组
元组(Tuple)与列表相似,所谓元组就是用多个元素组成的序列。列表非常适合存储在程序运行期间可变化的数据集,可随时修改。但是我们希望能有一种不可修改的数据类型,元组显然就是。对于元组有:
- 元组存储一串信息和数据
- 元组使用“,”隔离
- 元组用“()”定义
- 元组也从0索引开始
- 元组一旦定义完成,便不可修改其中任意元素。
#定义如下:
my_tuple = ("str1","str2","str3")
your_tuple = (123,456,789)
print(my_tuple[1])
#元组中只包含一个元素的时候,需要在那个元素的后面加逗号,否则改元素将成为它本身的类型。
single_tuple = (20,)
在格式化字符串中,也可以使用元组
tuple_demo = ("str",1024)
print("%s %d" %tuple_demo)
元组与列表中的类型转换:
list(tuple_name) #元组将变成列表
tuple(list_name) #列表将变成元组
第3节 分支与循环
3.1 分支
和之前学习过的语言一样,Python依然提供了if语句,但不同的是,if语句后面的判断条件可以不使用圆括号。直接裸露在外面,只需要在下面的代码块预留出空格就行,具体如下:
age = 18;
if age < 4:
print("Your admission cost is $0")
elif age < 18:
print("Your admission cost is $5")
else:
print("Your admission cost is $10")
同时,逻辑预算符如:and==&、or==|和之前学习的一样,在Python中同样适用。
3.2 循环
for循环用了更接近“英语语法”的形式,具体如下:
str = "ABCDEFG"
for alpha in str:
print("当前字母为:" , alpha)
list_demo = ['ABC','DEF','GHI']
for l in list_demo:
print("当前内容为:",l)
另外,对于print()的格式控制,在网上也看到了一个内容关于end=。
例如print(“#”,end=" \n"),默认换行,print(“#”,end=" ")则在循环中不换行。具体代码如下:
add = "QWERTYUIOP"
for ch in add:
print(ch,end="")
print("\n")
for ch in add:
print(ch,end="#")
# QWERTYUIOP
# Q#W#E#R#T#Y#U#I#O#P#
while循环和之前学习的语言一样,在Python中的语法规则和Python中的if语句一样。包括break和continue的使用方法,最后尝试输出一下九九乘法表吧:
row = 1
while row <=9:
col = 1
while col <= row:
print("%d * %d = %d" % (col,row,col*row),end = "\t")
col+=1
print("")
row+=1
输出结果: