求助python中一个排序问题(python中排序的用法)

本文目录一览:

求助python中一个排序问题!

lines  = [x for x in open(‘/tmp/test.txt’,r)]

lines.sort()

print lines

让程序自动排序即可

python 一个排序的问题

题目是不是:

有ABCD四个列表,每个列表有不同的元素(理解为字母);

每次从四个列表里面pop第一个元素组成一个单词作为新列表(输出的列表)的元素;

pop完之后要判断:

D列表长度可以为0

C列表长度可以为0,当D列表长度为0

B列表长度可以为0,当C列表长度为0

A列表长度可以为0,当B列表长度为0

如果有异常(不符合上述条件),组成的单词要追回(remove)。

输出包含新生成单词的列表。

另外要注意异常:

当输入的四个列表已经有长度为0的情况

当第一次pop之后,有列表长度为0的情况

def GenerateRndList():

    “Call ListFactory and check whether the list is empty. If it is, repeat ListFactory.”

    while 1:

        list = ListFactory()

        if len(list)  0:

            return list

def ListFactory():

    “Generate list”

    from random import randint

    List = [‘A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’,’I’,’J’,’K’,’L’,’M’,’N’,’O’,’P’,’Q’,’R’,’S’,’T’,’U’,’V’,’W’,’X’,’Y’,’Z’]

    tmpID = randint(0,len(List)) # how many elements require to be removed

    for i in range(tmpID):

        List.pop(randint(0, (len(List) – 1)))

    return List

def AddWord(character_list, debug = False):

    “Add word to output list”

    global WORD_LIST

    word = ”

    for i in character_list:

        word += i

    if debug is True:

        print ‘Combined – ‘, word

    WORD_LIST.append(word)

def RemoveWord(debug = False):

    “Remove final word to output list”

    global WORD_LIST

    if debug is True:

        print ‘Remove – ‘, WORD_LIST[-1]

    WORD_LIST.pop()

def Outputter():

    print WORD_LIST

def WordVerifier(word):

    “Send out word to one web site to verify whether word is meaningful.”

    pass

def  ListVerifier(input_list):

    “Check whether length of list items matches the requirement”

    global ProcessFlag

    # Prepare a flag list, whose element is 1 or 0.

    original_length_list = []

    for i in range(len(input_list)):

        if len(input_list[i]) == 0:

            original_length_list.append(0)

        if len(input_list[i]) = 1:

            original_length_list.append(1)

    ”’

    Compare whether the list is same after sorted,

        – if same, rule is matched;

        – if not, rule is NOT matched.

    ”’

    compare_length_list = original_length_list[:]

    compare_length_list.sort()

    compare_length_list.reverse()

    if str(compare_length_list) != str(original_length_list):

        RemoveWord() # at this time, state maybe [01][01][01]1

        ProcessFlag = False

    elif original_length_list.count(0)  0:

        ProcessFlag = False

def Callback(input_list,  Callback_Support_Function):

    “Generate new word”

    while 1:

        new_word = []

        for i in range(len(input_list)):

            new_word.append(input_list[i].pop(0))

        AddWord(new_word)

        Callback_Support_Function(input_list)

        if ProcessFlag is False:

            break

def main(list_number = 4):

    INPUT = []

    for i in range(list_number):

        INPUT.append(GenerateRndList())

    print ‘Generated lists are,’

    for i in INPUT:

        print ‘\t’, i

    Callback(INPUT, ListVerifier)

    Outputter()

    # WordVerifier(word)

if __name__ == ‘__main__’:

    global WORD_LIST, ProcessFlag

    WORD_LIST = []

    ProcessFlag = True

    main(list_number = 4)

Python学习小技巧之列表项的排序

Python学习小技巧之列表项的排序

本文介绍的是关于Python列表项排序的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

典型代码1:

data_list = [6, 9, 1, 3, 0, 10, 100, -100]

data_list.sort()

print(data_list)

输出1:

[-100, 0, 1, 3, 6, 9, 10, 100]

典型代码2:

data_list = [6, 9, 1, 3, 0, 10, 100, -100]

data_list_copy = sorted(data_list)

print(data_list)

print(data_list_copy)

输出2:

[6, 9, 1, 3, 0, 10, 100, -100]

[-100, 0, 1, 3, 6, 9, 10, 100]

应用场景

需要对列表中的项进行排序时使用。其中典型代码1是使用的列表自身的一个排序方法sort,这个方法自动按照升序排序,并且是原地排序,被排序的列表本身会被修改;典型代码2是调用的内置函数sort,会产生一个新的经过排序后的列表对象,原列表不受影响。这两种方式接受的参数几乎是一样的,他们都接受一个key参数,这个参数用来指定用对象的哪一部分为排序的依据:

data_list = [(0, 100), (77, 34), (55, 97)]

data_list.sort(key=lambda x: x[1]) # 我们想要基于列表项的第二个数进行排序

print(data_list)

[(77, 34), (55, 97), (0, 100)]

另外一个经常使用的参数是reverse,用来指定是否按照倒序排序,默认为False:

data_list = [(0, 100), (77, 34), (55, 97)]

data_list.sort(key=lambda x: x[1], reverse=True) # 我们想要基于列表项的第二个数进行排序,并倒序

print(data_list)

[(0, 100), (55, 97), (77, 34)]

带来的好处

1. 内置的排序方法,执行效率高,表达能力强,使代码更加紧凑,已读

2. 灵活的参数,用于指定排序的基准,比在类似于Java的语言中需要写一个comparator要方便很多

其它说明

1. sorted内置函数比列表的sort方法要适用范围更广泛,它可以对除列表之外的可迭代数据结构进行排序;

2. list内置的sort方法,属于原地排序,理论上能够节省内存的消耗;

总结

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助

python 中 set 的排序问题?

set 本身根据定义就是无序的,具体的输出顺序跟实现相关。

方法1 为什么是有序的你可以认为这是一个实现的巧合,实际代码中不应该依赖这个特性(因为别的实现可能不一致,甚至 Python 官方的时候随着版本都有可能变化)。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/230762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-10 18:18
下一篇 2024-12-10 18:18

相关推荐

  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python官网中文版:解决你的编程问题

    Python是一种高级编程语言,它可以用于Web开发、科学计算、人工智能等领域。Python官网中文版提供了全面的资源和教程,可以帮助你入门学习和进一步提高编程技能。 一、Pyth…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29

发表回复

登录后才能评论