模块与包
1.输入日期,判断这一天是这一年的第几天
def year_of_year():
year = input("year: ")
month = input("month: ")
day = input("day: ")
date1 = datetime.date(year = int(year), month=int(month), day = int(day))
date2 = datetime.date(year = int(year), month = 1, day =1)
return (date2-date1).days+1
2.打乱一个已经排好序的列表
import random
alist = [1,2,3,4,5]
random.shuffle(alist)
print(alist)
数据类型
3.对现有字典进行排序,按value值
sorted(d.items(),key=lambda x:x[1])
4.将字符串 "k:1 |k1:2|k2:3|k3:4",处理成字典 {k:1,k1:2,...}
d = {k:int(v) for t in str1.split("|") for k, v in (s.split(":"), )}
5.请按alist中元素的age由大到小排序
alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
sorted(alist, key=lambda x:x['age'], reverse=True)
6.求两个列表相同元素和不同元素
list1 = [1,2,3]
list2 = [3,4,5]
set1 = set(list1)
set2 = set(list2)
print(set1 & set2)
print(set1 ^ set2)
7.写出一段代码删除list重复元素
#方法1
l1 = ['b','c','d','c','a','a']
l2 = list(set(l1))
print(l2)
#方法2
l1 = ['b','c','d','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print(l2)
16.python中内置的数据结构有几种?
可变的有:数组、集合、字典;
不可变的有:字符串、元组、数。
1,可变类型有list,dict.不可变类型有string,number,tuple.
2,当进行修改操作时,可变类型传递的是内存中的地址,也就是说,直接修改内存中的值,并没有开辟新的内存。
3,不可变类型被改变时,并没有改变原内存地址中的值,而是开辟一块新的内存,将原地址中的值复制过去,对这块新开辟的内存中的值进行操作。
17.反转一个整数
class Solution(object):
def reverse(self, x):
if -10<x<10:
return x
str_x = str(x)
if str_x[0] != "-":
str_x = str_x[::-1]
x = int(str_x)
else:
str_x = str_x[1:][::-1]
x=int(str_x)
x=-x
return x
题目
18.is和==的区别
is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象。是否指向同一个内存地址
== : 比较的两个对象的内容/值是否相等,默认会调用对象的eq()方法
19.利用reduce
from functools import reduce
num1 = reduce(lambda x, y:x+y, [1,2,3,10248])
print(num1)
20.Python中变量的作用域?(变量查找顺序)
函数作用域的LEGB顺序
1.什么是LEGB?
L: local 函数内部作用域
E: enclosing 函数内部与内嵌函数之间
G: global 全局作用域
B: build-in 内置作用
python在函数里面的查找分为4种,称之为LEGB,也正是按照这是顺序来查找的
21.Given an array of integers
def sum_2(nums, target):
n=len(nums)
d={}
for x in range(n):
a = target-nums[x]
if nums[x] in d:
return d[nums[x]], x
else:
d[a]=x
22.删除list里重复元素
def distFunc1(a):
"""使用集合去重"""
a = list(set(a))
print(a)
def distFunc2(a):
"""将一个列表的数据取出放到另一个列表中,中间作判断"""
list = []
for i in a:
if i not in list:
list.append(i)
#如果需要排序的话用sort
list.sort()
print(list)
def distFunc3(a):
"""使用字典"""
b = {}
b = b.fromkeys(a)
c = list(b.keys())
print(c)
23.统计文章频率最高的十个词
def find_word(filename):
result_dict={}
with open(filename) as fp:
for i in fp:
wordlist = i.split()
for j in wordlist:
if not result_dict.has_key(j):
result_dict[j]=1
else:
result_dict[j]+=1
sorted_result = sorted(result_dict.items, key=lambda x:x[0], reverse=True)
return sorted_result[:11]
24.给定一个任意长度数组,实现一个函数
让所有奇数都在偶数前面,而且奇数升序排列,偶数降序排序,如字符串'1982376455',变成'1355798642'
def func(l):
if isinstance(l, str):
l = list(l)
l = [int(i) for i in l]
l.sort(reverse = True)
for i in range(len(l)):
if l[i]%2>0:
l.insert(0, l.pop(i))
print(''.join(str(e) for e in l))
25.统计字符串字符出现数目
def count_str(str_data):
dict_str={}
for i in str_data:
dict_str[i] = dict_str.get(i, 0)+1
return dict_str
dict_str=count_str("AAABDBDBDBD")
str_count_data = ""
for k, v in dict_str.items():
str_count_data+=k+str(v)
print(str)