小编kur*_*uro的帖子

Python:可以使用Dictionary进行索引吗?

这是我在StackOverflow上的第一个问题,我搜索了很多网站,却找不到我想要的东西(或者没有注意到).请不要劝阻我:)

此外,这是我与Phyton的第一次编程经历,我很困惑.

我有一个TXT文件,里面有3列用WhiteSpaces隔开.这些列DeptID,CourseID,NumberofStudentsEnrolled.

以下是示例数据:

101 10001 23
102 10002 30
102 10004 5
102 10005 13
105 10006 59
105 10007 77
Run Code Online (Sandbox Code Playgroud)

因此,每当我调用DeptID索引和CourseID索引时,该程序将为我提供一些注册的学生.

示例:NumberofEnrolled("101","10001")应该给出23答案.

我应该尝试使用矩阵吗?因为我有点迷茫.我知道我想要什么,但我不知道它在Phyton中叫什么.

import numpy

depts = []
courses = []

file = open("C:\\Info.txt", "r")

# SPLIT EVERY LINE INTO 3 PIECES : DeptID , CourseID , Enrolled
for line in file:
    depts.append(line.split()[0]) # ADD Depts
    courses.append(line.split()[1])  # ADD Courses

# CLOSE THE FILE …
Run Code Online (Sandbox Code Playgroud)

python indexing dictionary

5
推荐指数
1
解决办法
107
查看次数

从函数返回临时对象的引用

考虑以下代码 -

#include <iostream>
#include <stdio.h>

const int & retRef() {
    return 6;
}

int main()
{
    const int& k = retRef();
    printf("Value: %d\n", k);
    printf("Address: %p\n", &k);
    printf("Value: %d\n", k);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是 -

Value: 6
Address: 0x7ffd45bf544c
Value: 32692
Run Code Online (Sandbox Code Playgroud)

为什么在打印变量的地址后值发生了变化k?如果我更换线const int& k = retRef()const int& k = 6;的输出为预期.

为什么这种行为不同?提前致谢

c++ lifetime const-reference temporary-objects

4
推荐指数
1
解决办法
127
查看次数

!操作员在做循环时

我只是在C中进行插入排序的教程,我很难理解它的方式!运算符用作do while循环的条件.

条件只是while (!done)但我不明白它是如何知道什么不应该等于变量完成.喜欢的东西while (done==0)会让我更有意义.

我只是开始编码,如果答案非常明显,那就很抱歉!我试过谷歌搜索但我发现很难表达问题...

代码如下:

void insertionSortArray (int arr[])
{
    for(int i = 1; i < SIZE; i++)
    {
        int value = arr[i];
        int j = i -1;
        int done = 0;
        do
        {
            if (arr[j]>value)
            {
                arr [j+1] = arr[j];
                j - -;
                if (j<0)
                done = 1;
            }

            else
                done = 1;

        } while (!done);

        arr [j+1] = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!!

c insertion-sort do-while

2
推荐指数
1
解决办法
94
查看次数

从键列表创建嵌套字典

我有键列表:list1 =['info', 'websites', 'site']和最终值=“检查”。我正在尝试构建一个递归函数来创建嵌套字典,如下所示:

dict = {'info': {'websites': {'site' : 'check' } } }
Run Code Online (Sandbox Code Playgroud)

我尝试了以下函数,但我的函数没有得到上述输出:

def nested_dict(keys_list, value, check_dict, size):
    if size != 1:
        print(check_dict)
        check_dict[keys_list[0]] = nested_dict(keys_list[1:], value, check_dict, size-1)
    else:
        print(check_dict)
        check_dict[keys_list[0]] = value
        return check_dict 
Run Code Online (Sandbox Code Playgroud)

我感谢您的帮助!

python

2
推荐指数
1
解决办法
133
查看次数

当有错误的命令行参数时,如何让 getopt_long() 不打印任何内容?

我有一个程序getopt_get()用来解析命令行参数。我的代码是这样的:

int opt;
int optionIndex;
static struct option longOptions[] = {
    {"help", no_argument, NULL, 'h'},
    {"test", no_argument, NULL, 't'},
    {0, 0, 0, 0}
}; 
while ((opt = getopt_long(argc, argv, "ht", longOptions, &optionIndex)) != -1) {
    switch (opt) {
        case 'h':
            help();
            return 0;
            break;
        case 't':
            init();
            test();
            return 0;
            break;
        case '?':
            help();
            return 1;
            break;
        default:
            printf("default.\n");
    }   
Run Code Online (Sandbox Code Playgroud)

当我将正确的命令行参数传递给程序时,它运行良好。但是当错误的参数传递给程序时,它会打印出像这样烦人和多余的词。

例如,我将错误的参数“q”传递给程序

$ ./program -q
./program: invalid option -- 'q'
Usage: -h -t
Run Code Online (Sandbox Code Playgroud)

当有错误的参数时,我只希望它运行我的函数help()而不打印任何单词。

./program: invalid …
Run Code Online (Sandbox Code Playgroud)

c linux glibc getopt getopt-long

1
推荐指数
1
解决办法
1660
查看次数

在文件中搜索单词并打印匹配的行 - Python

我是 Python 的新手,我试图在文件中找到一个单词并打印“整个”匹配行

exmaple.txt 具有以下文本:

sh version

Cisco IOS Software, 2800 Software (C2800NM-IPBASE-M), Version 12.4(3h), RELEASE SOFTWARE (fc2)

sh inventory

NAME: "2811 chassis", DESCR: "2811 chassis, Hw Serial#: FHK1143F0WY, Hw 
NAME: "High Speed Wan Interface card with 16 RS232 async ports(HWIC-16A)", 
NAME: "High Speed Wan Interface card with 16 RS232 async ports(HWIC-16A)", 
NAME: "16 Port 10BaseT/100BaseTX EtherSwitch"
Run Code Online (Sandbox Code Playgroud)

要求:要查找字符串“Cisco IOS Software”,如果找到,请打印该完整行。在文件中找到“NAME:”,如果找到,则打印该完整行并计算出现次数

代码:

import re
def image():
    file = open(r'C:\Users\myname\Desktop\Python\10_126_93_132.log', 'r')
    for line in file:
        if re.findall('Cisco IOS Software', line) in line: …
Run Code Online (Sandbox Code Playgroud)

python search findall

1
推荐指数
1
解决办法
1万
查看次数

在 Python 中迭代一个字典键的多个值

这是我的 Python 函数之一的摘录:

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
d_list = []
for key,value in d.iteritems():
    temp = [key, value]
    d_list.append(temp)
Run Code Online (Sandbox Code Playgroud)

当我打印d_list它时,它目前给了我:

>>>print d_list
[['ANIMAL', ['CAT', 'DOG', 'FISH', 'HEDGEHOG']]]
Run Code Online (Sandbox Code Playgroud)

我如何重写函数,以便它给我:

>>>print d_list
[['ANIMAL', 'CAT'],['ANIMAL', 'DOG'],['ANIMAL', 'FISH'],['ANIMAL', 'HEDGEHOG']]
Run Code Online (Sandbox Code Playgroud)

python dictionary list

0
推荐指数
1
解决办法
1万
查看次数

反向函数数组字符串

  • 为什么我的反向函数没有将我的字符串反转回Hello!当我第二次调用我的功能时?

  • 我可以更改使用我的函数多次反转+反转我的字符串?

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void reverse(char arr[], int numberOfChars);
    
    int main()
    {
        char myString[] = "Hello!";
        int length = strlen(myString);
    
        for (int i = 0; i < length; i++)
        {
            printf("%c", myString[i]);
        }
        printf("\n");
    
        reverse(myString, length);
        reverse(myString, length);
    
        getchar();
        return 0;
    }
    
    void reverse(char arr[], int numberOfChars)
    {
        for (int i = numberOfChars - 1; i >= 0; i--)
        {
            printf("%c", arr[i]);
        }
        getchar();
    }
    
    Run Code Online (Sandbox Code Playgroud)

c arrays string

-2
推荐指数
1
解决办法
67
查看次数