python 一些内容

模块与包

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)

猜你喜欢

转载自blog.csdn.net/weixin_42307828/article/details/88528718
今日推荐