Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python索引器处理 def探测器(列表): 对于范围(0,len(列表))中的i: 如果类型(列表[i])!=类型('a'): 返回0 返回1 def findWords(列表,i): 如果i==0: 返回列表[0] 如果列表[i]=0时: result.append(findWords(list,i)) i-=1 打印(结果) list=input('输入您的单词,中间有一个空格。\t')。split() i=len(列表)-1 如有必要,请列出: sortWords(列表,i)_Python_Python 3.x - Fatal编程技术网

Python索引器处理 def探测器(列表): 对于范围(0,len(列表))中的i: 如果类型(列表[i])!=类型('a'): 返回0 返回1 def findWords(列表,i): 如果i==0: 返回列表[0] 如果列表[i]=0时: result.append(findWords(list,i)) i-=1 打印(结果) list=input('输入您的单词,中间有一个空格。\t')。split() i=len(列表)-1 如有必要,请列出: sortWords(列表,i)

Python索引器处理 def探测器(列表): 对于范围(0,len(列表))中的i: 如果类型(列表[i])!=类型('a'): 返回0 返回1 def findWords(列表,i): 如果i==0: 返回列表[0] 如果列表[i]=0时: result.append(findWords(list,i)) i-=1 打印(结果) list=input('输入您的单词,中间有一个空格。\t')。split() i=len(列表)-1 如有必要,请列出: sortWords(列表,i),python,python-3.x,Python,Python 3.x,但在这里,我只能输入2个单词,当我尝试使用3时,会发生这种情况: def kindDetector(list): for i in range(0,len(list)): if type(list[i]) != type('a'): return 0 return 1 def findWords(list,i): if i == 0: return list[0] if list[i] < findW

但在这里,我只能输入2个单词,当我尝试使用3时,会发生这种情况:

def kindDetector(list):
    for i in range(0,len(list)):
        if type(list[i]) != type('a'):
            return 0
    return 1

def findWords(list,i):
    if i == 0:
        return list[0]
    if list[i] < findWords(list,i-1):
        return list.pop(i)
    else:
        return list.pop(i-1)

def sortWords(list,i):
    result=[]
    while i >= 0:
        result.append(findWords(list,i))
        i -=1
    print(result)


list = input('Enter your words, with a space between.\t').split()
i = len(list)-1
if kindDetector(list):
    sortWords(list,i)
回溯(最近一次呼叫最后一次):
文件“C:/Users/honey/Desktop/python/selfmake/sortWords.py”,第26行,在
sortWords(列表,i)
文件“C:/Users/honey/Desktop/python/selfmake/sortWords.py”,第18行,在sortWords中
result.append(findWords(list,i))
文件“C:/Users/honey/Desktop/python/selfmake/sortWords.py”,第10行,FindWord格式
如果列表[i]
您将BubbleSort与SelectionSort(即从未排序的列表中查找最小的项并将其附加到结果列表的前面)混合使用(即,比较相邻项并尝试一次移动一个,直到列表排序)

此外,这里还有一些问题:

  • Python通过引用传递变量,这意味着您的函数接收原始列表的句柄而不是副本。如果您在迭代时更改列表(您的
    pop()
    调用所做的),您将遇到索引错误

  • 您的
    findWords
    功能有缺陷。从后向前迭代,检查当前元素是否在字典上小于其前一个元素(即左邻居)。您可能想更改对
    return
    语句的
    pop
    -调用,不是吗

我已经快速实现了一些基本的排序算法(无错误处理、类型比较器使用等):

def是字符串(lst)的列表:
对于范围(0,len(lst))内的i:
如果类型(lst[i])不在(str,unicode)中:
返回错误
返回真值
def已排序(lst):
如果len(lst)<2:
返回真值
对于范围内的i(透镜(lst)-1):
如果不是lst[i]l[i+1]:
tmp=l[i]
l[i]=l[i+1]
l[i+1]=tmp
返回l
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
lst=['aaa','aba','aab','baz','bar']
print('字符串的有效列表?',是字符串的列表(lst))
打印(lst,已排序(lst))
bbl=气泡_排序(lst)
ins=插入\排序(lst)
sel=选择和排序(lst)
打印(bbl,已排序(bbl))
打印(ins,已排序(ins))
打印(sel,已排序(sel))
看看它们,试着理解它们,并在线阅读这三种技术。然后尝试使用自己的函数重新实现它们。有趣的编码:)

您将BubbleSort与SelectionSort(即从未排序的列表中查找最小的项并将其附加到结果列表的前面)混合使用(即,比较邻居并尝试一次移动一个,直到列表排序)

此外,这里还有一些问题:

  • Python通过引用传递变量,这意味着您的函数接收原始列表的句柄而不是副本。如果您在迭代时更改列表(您的
    pop()
    调用所做的),您将遇到索引错误

  • 您的
    findWords
    功能有缺陷。从后向前迭代,检查当前元素是否在字典上小于其前一个元素(即左邻居)。您可能想更改对
    return
    语句的
    pop
    -调用,不是吗

我已经快速实现了一些基本的排序算法(无错误处理、类型比较器使用等):

def是字符串(lst)的列表:
对于范围(0,len(lst))内的i:
如果类型(lst[i])不在(str,unicode)中:
返回错误
返回真值
def已排序(lst):
如果len(lst)<2:
返回真值
对于范围内的i(透镜(lst)-1):
如果不是lst[i]l[i+1]:
tmp=l[i]
l[i]=l[i+1]
l[i+1]=tmp
返回l
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
lst=['aaa','aba','aab','baz','bar']
print('字符串的有效列表?',是字符串的列表(lst))
打印(lst,已排序(lst))
bbl=气泡_排序(lst)
ins=插入\排序(lst)
sel=选择和排序(lst)
打印(bbl,已排序(bbl))
打印(ins,已排序(ins))
打印(sel,已排序(sel))
看看他们,试着
Traceback (most recent call last):
  File "C:/Users/honey/Desktop/python/selfMade/sortWords.py", line 26, in <module>
    sortWords(list,i)
  File "C:/Users/honey/Desktop/python/selfMade/sortWords.py", line 18, in sortWords
    result.append(findWords(list,i))
  File "C:/Users/honey/Desktop/python/selfMade/sortWords.py", line 10, in findWords
    if list[i] < findWords(list,i-1):
IndexError: list index out of range
def is_list_of_strings(lst):
    for i in range(0,len(lst)):
        if type(lst[i]) not in (str, unicode):
            return False
    return True

def is_sorted(lst):
    if len(lst) < 2:
        return True
    for i in range(len(lst) - 1):
        if not lst[i] < lst[i + 1]:
            return False
    return True

def selection_sort(lst):
    l = lst[:] # Copy!
    r = []
    while len(l):
        r.append(l.pop(l.index(min(l))))
    return r

def insertion_sort(lst):
    l = lst[1:] # Copy!
    r = [lst[0]]
    for e in l:
        inserted = False
        for w in r:
            if e < w:
                r.insert(r.index(w), e)
                inserted = True
                break
        if not inserted:
            r.append(e)
    return r

def bubble_sort(lst):
    l = lst[:] # Copy!
    while not is_sorted(l):
        for i in range(len(l) - 1):
            if l[i] > l[i + 1]:
                tmp = l[i]
                l[i] = l[i + 1]
                l[i + 1] = tmp
    return l

if __name__ == '__main__':
    lst = ['aaa', 'aba', 'aab', 'baz', 'bar']

    print('Valid list of strings?', is_list_of_strings(lst))
    print(lst, is_sorted(lst))

    bbl = bubble_sort(lst)
    ins = insertion_sort(lst)
    sel = selection_sort(lst)

    print(bbl, is_sorted(bbl))
    print(ins, is_sorted(ins))
    print(sel, is_sorted(sel))