文章目录
- 数组/列表(list)
-
- 获取数组长度
- [for 循环数组](#for 循环数组)
- [for 循环数组下标](#for 循环数组下标)
- 寻找某个数据在数组里的下标
- 字典
- 创建一个二维数组
- 读取字典
- 列表(list)排序
- 二分法基本思路
- 字符串
- 其他
数组/列表(list)
获取数组长度
python
length=len(list)
for 循环数组
python
for i in list:
print (i)
打出来的就是数组里的每一个数据。
for 循环数组下标
python
for i in range(length):
print(list[i])
在这里,假如length是3,i是0,1,2,所以需要注意。
寻找某个数据在数组里的下标
python
index=nums[i+1:].index(numNeed)+i+1
因为是从i+1开始找的,然后用index函数获取。
字典
python
character={
'I':1,
'V':5,
'X':10,
'L':50,
'C':100,
'D':500,
'M':1000
}
print(character['I'])
# 输出1,要用键去读
创建一个二维数组
二维数组m行n列,创建代码如下:
python
result=[[0]*n for i in range(m)]
二维数组m行,然后是杨辉三角那种,创建代码如下:
python
Ylist=[[0]*i for i in range(1,numRows+1)]
然后写入数据的时候,写入某行(前行后列):
python
result[i][:]=...
读取字典
如果用 for i in ...,取出来的只是字典的key,要键值对,得用.items()。
python
for key,value in stockItem.items():
列表(list)排序
python
list.sort()
- 写列表的值
原地修改不能用「赋值 =」
Python 里:
nums1 = [1,2,3] → 新建一个列表,和原来的无关
nums1[i] = x 或 nums1[:] = ... → 才是修改原数组
二分法基本思路
代码来源:来源
python
int binarySearch(int[] nums, int target) {
int left = 0, right = ...;
while(...) {
int mid = left + (right - left) / 2;
if (nums[mid] == target) {
...
} else if (nums[mid] < target) {
left = ...
} else if (nums[mid] > target) {
right = ...
}
}
return ...;
}
同时注意,找区间的话,
找左区间:在num[mid]<target的时候,left再往右移,相等的时候我们需要让整个区间继续往左走的。
找右区间:在num[mid]<=target的时候,left就开始往右移了,因为它的左侧并不可能是右区间。
left来的:左边界:小于target;右边界:小于等于target
python
# 找左边界
if nums[mid] < target: # 比目标小 → 才往右
left = mid + 1
else: # >= 目标 → 都往左找
right = mid - 1
return left # 最后返回 left
# 找右边界
if nums[mid] <= target: # 小于等于 → 往右
left = mid + 1
else: # 大于目标 → 往左
right = mid - 1
return right # 最后返回 right
字符串
字符串大写变小写
python
s=s.lower()
字符串是否是字母或者数字
python
ss.isalnum()
拼接list的字符串
python
result=[]
for ss in s:
if(ss.isalnum()):
result.append(ss)
result=''.join(result)
数字二进制化成字符串
python
s=bin(n)
字符出现次数
python
num=s.count('1')
其他
运算符
python
if (n%3==0): # 余数
if (n/3==0) # 除以三的浮点数得数
if (n//3==0) # 除以三的整数得数