• Python 笔记


    1,冒泡算法:

    def bubble(items):
        if len(items) <= 1:
            return items
        for index in range(len(items)-1,0,-1):
            flag = False
            for sub_index in range(index):
                if items[sub_index] > items[sub_index + 1]:
                    items[sub_index],items[sub_index + 1] = items[sub_index + 1], items[sub_index]
                    flag = True
            if flag == False:
                break 
        return items

     2,有一个整数数组,请求出两两之差绝对值最小的值,只要得出最小值即可,不需要求出是哪两个数。

    c=min(abs(i-j) fori in a for j in b)
    

      这里有一个技巧,[abs(i-j) for i in a for j inb]会生成一个list,使用大量的存储空间,而(abs(i-j) for i in a for j inb)则产生一个生成器。

    3,写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)

    a=input("输入一组字符:")
    if a.isdigit():
        a=int(a)
        print(a)

    4,给出一个函数来输出一个字符串的所有排列。

    #方法一:递归
    def perms(elements):
        if len(elements) <=1:
            yield elements
        else:
            for perm in perms(elements[1:]):
                for i in range(len(elements)):
    
                    yield perm[:i] + elements[0:1] + perm[i:]
    
    for item in list(perms('nice')):
        print(item)
    #方法二:
    from itertools import permutations
    a="nice"
    for element in list(itertools.permutations(a, 4)):
        print(''.join(element))

     5,将一个list形式的字符串转换为list数据形式

    a = "[1,2,3]"
    from ast import literal_eval
    a = literal_eval(a)  # list形式字符串转换为list
    -------------------------------
    eval(a)

      

  • 相关阅读:
    mybatis框架-用类映射返回结果
    ArrayLLis 线程不安 实验
    快速求幂运算笔记
    nyoj 56 阶乘中素数的个数
    求正整数n所有可能的和式的组合(如;4=1+1+1+1、1+1+2、1+3、2+1+1、2+2
    synchronize学习
    nyoj 找球号三(除了一个数个数为基数,其他为偶数,编程之美上的)
    递归判断一个数是否递增
    快速排序c++
    x&-x
  • 原文地址:https://www.cnblogs.com/gaigaige/p/8024326.html
Copyright © 2020-2023  润新知