python基础重点/latex引用

基础的切片不讲述,以下记下几种不好记忆的python方法

python重点1:列表/元组/字典/集合

1.1 列表

# 1. 基础之切片
L = [
    ['Apple', 'Google', 'Microsoft'],
    ['Java', 'Python', 'Ruby', 'PHP'],
    ['Adam', 'Bart', 'Lisa']
]
L[0:1][0][-1]  # 'Microsoft'

# 2. 修改元素值
L[0:1][0][-1] = 'A'

# 3. 方法
list.append()
listA.extend(listB) # 将另一个集合中的元素逐一添加到列表中
list.insert(2,"元") # 在第二个位置之后添加
'元' not in list; # 查找元素True/False
list.index('z') # 返回索引位置,从0开始的
list.count('元') # 元出现的次数

# 其中返回索引位置的话
s = 'abc'
# 只有string才有find,列表是index返回索引位置
s.find('b') # 1

# 删除元素 del pop remove
test_del = ['能','不','能','给','我','一','首','歌','的','时间']
movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
movieName.pop()  # '速度与激情'
movieName.pop(1) # '骇客帝国'
L = [1,2,3,1,2,3]
L.remove(1) # 删除第一个1
L.remove(4) # 删除第一个4

movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
del movieName[2] # 第一滴血被删除

# 排序
a = [1, 4, 2, 3]
a.reverse() # 倒序 [3, 2, 4, 1]
a.sort(reverse=True)   # 倒序排列 ,和上面的完全不一样  [4, 3, 2, 1]
a.sort() # [1, 2, 3, 4]

1.2 元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

现在,aTuple这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用aTuple[0],aTuple[-1],但不能赋值成另外的元素。

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。

但是tuple本身有陷阱:里面的list可以改边

tp5 = ('a', 'b', ['A', 'B'])
tp5[2][0] = 'X'
tp5[2][1] = 'Y'
# ('a', 'b', ['X', 'Y'])

1.3 字典

# 字典就是key, values

d = {'C罗纳尔多': 94, '梅西': 93, '内马尔': 92, '苏亚雷斯':92, 
     '诺伊尔':92, '莱万多夫斯基':91, '拉莫斯':90}
d['内马尔'] # 92
len(d) # 7
d['克罗斯'] = 90
"大罗纳尔多" in d # 是否存在

# 常见操作
d.keys() # 获取字典key
d.values() # 获取字典values
print(d.items())   # 输出一个list格式(非真正意义上的list)
# dict_items([('李毅', 66), ('拉莫斯', 90), ('梅西', 93), ('诺伊尔', 92), ('莱万多夫斯基', 91), ('苏亚雷斯', 92), ('C罗纳尔多', 94), ('内马尔', 92)])

print(list(d.items()))  # 把字典的key 和 value 转成一个多维list
# [('李毅', 66), ('拉莫斯', 90), ('梅西', 93), ('诺伊尔', 92), ('莱万多夫斯基', 91), ('苏亚雷斯', 92), ('C罗纳尔多', 94), ('内马尔', 92)]
len(d)#计算字典元素个数,即键的总数。# 8

str(d)#输出字典可打印的字符串。

# 便利字典 
for k, v in d.items():
    print(k, v)
# 或
for k in d:
    print(k,d[k])
    print(k,d.get(k))   

# 其他数据处理成字典
names = ['罗纳尔多', '梅西', '内马尔','苏亚雷斯', '诺伊尔', '莱万多夫斯基', '拉莫斯' ]
scores = [94, 93, 92, 92, 92, 91, 90]
# 首先创建一个空字典
d = {} # enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,
for number,name in enumerate(names):
    d[name] = scores[number]

1.4 集合

集合(set)是一个无序的不重复元素序列。set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。其实集合就是一个没有value的字典。一个常规应用时过滤重复值.

# set 一个常规应用时过滤重复值
s = set([1, 1, 2, 2, 3, 3])
s # {1, 2, 3}
s.add(4)
s.remove(4)

# 数学意义上交集、并集等操作
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
s1 & s2
# {2, 3}
s1.intersection(s2)
# {2, 3}

s1 | s2 # {1, 2, 3, 4}
s1.union(s2) # {1, 2, 3, 4}

1.5 不可变类型的全局变量需要在里面生命global,而像list的全局变量则是可变类型的,不需要声明。

a = 1
def f():
    global a
    a += 1
    print (a)
f()

li = [1,]
def f2():
    li.append(1)
    print (li)
f2()

1.5 类和类的继承

class Parent:
    def pprt(self):
        print(self)

class Student(Parent):
    sex = '男'
    def __init__(self, name, score, age):
        self.__age = age # 双下划线就设置为了私有化,说明无法用student.__age
        self.name = name
        self.score = score
    def print_score(self):
        print ("%s: %s :%s :%s", (self.name, self.score, Student.sex, self.__age))
# 注意这里的Student.sex和self.sex是一样的,所以干嘛不写在init初始化里面呢?
# self 就代表了实例化的类
    def ssrt(self):
        # 如何使用父类的方法
        Parent.pprt(self)
student = Student("Hugh", 99, 20)
student.print_score()
print(student.name)
# print(student.__age) # 不可用

student.ssrt()


%s: %s :%s :%s ('Hugh', 99, '男', 20)
Hugh
<__main__.Student object at 0x7f56d4268fd0>

https://blog.csdn.net/lly1122334/article/details/106423920

对于使用.bib文件参考文献的引用,使用bibtex 文件名进行预先编译,在run两次进行二次编译即可。

(bibtex 编译的是输出下的aux文件)

若要增加引用支持[1,2]效果,使用宏包

\usepackage[numbers,sort&compress]{natbib} %增加引用支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值