小编big*_*ose的帖子

Python初学者被复杂的代码行所困惑

我理解代码的要点,它形成了排列; 但是,我想知道是否有人能够在退货声明中准确解释发生了什么.

def perm(l):
    sz = len(l)
    print (l)
    if sz <= 1:
        print ('sz <= 1')
        return [l]
    return [p[:i]+[l[0]]+p[i:] for i in range(sz) for p in perm(l[1:])]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

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

python列表中的唯一项目

我试图在Python列表中创建一个独特的日期集合.

仅在集合中尚未存在日期时才添加日期.

timestamps = []

timestamps = [
    '2011-02-22', '2011-02-05', '2011-02-04', '2010-12-14', '2010-12-13', 
    '2010-12-12', '2010-12-11', '2010-12-07', '2010-12-02', '2010-11-30', 
    '2010-11-26', '2010-11-23', '2010-11-22', '2010-11-16']

date = "2010-11-22"
if date not in timestamps:
    timestamps.append(date)
Run Code Online (Sandbox Code Playgroud)

我该如何排序?

python

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

命名浏览器cookie的惯例

我注意到网站设置的cookie都有以下名称

__utma, __utmb, __utmc, __utmz
Run Code Online (Sandbox Code Playgroud)

这是一个惯例吗?或者它是某些服务器端语言创建的默认值?这些有特定的含义吗?这些是预期的吗?有人可以解释一下吗?

language-agnostic cookies session-cookies

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

ggplot geom_tile与facet的间距

我试图在x轴上制作一个由两个离散变量排序的刻面ggplot.问题是我想让垂直相邻的条目全部接触.目前,行之间存在空间,基于该因子在顶部图中与底部的哪个级别.抱歉,这个可重复的例子有点冗长.

npats=20   

simsympt=c(id=1,date=1,tx="control",sympt=0) 

for(i in 1:npats)

 {   days=abs(round(rnorm(1,100,40),0))
     id=rep(as.character(i),days)
     date=1:days
     tx=rep(sample(c("control","treatment"),1),days)
     sympt= sample(0:10, days,p=c(12,3,3,2,1,1,1,1,1,1,1),rep=T)

   simsympt=      rbind(simsympt,      cbind(id,date,tx,sympt) )
  }
       ####tidy things up a bit   
     simsympt=data.frame(simsympt)[-1,]
     colnames(simsympt)=c('id','date','tx','level')
     simsympt$date=as.numeric(as.character(simsympt$date))
     simsympt$level=as.numeric(as.character(simsympt$level))
     #simsympt$id=as.numeric(as.character(simsympt$id))

  head(simsympt)

##now the important stuff

 p <- ggplot(simsympt, aes(x=date,y=id))    
 p=   p + geom_tile(aes(fill=level)) +   
      facet_grid(tx~.,drop=T,space="free")+
      scale_y_discrete(expand=c(0,0),drop=T)
 p
Run Code Online (Sandbox Code Playgroud)

这里没有描述

我只需要删除顶部和底部图形(facet)中行之间的所有垂直空间.例如,由于id号15在对照组中,因此在治疗组中不应该有她的行.谢谢,赛斯

r ggplot2

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

打包库(Debian)时创建符号链接?

我是第一次尝试为Debian打包一个小型图书馆。为此,我使用的是官方的Debian Policy手册,但是由于两天后遇到了无法解决的问题。

这是我包装的方式:

  • 创建压缩包(此处为libvl_1.0.orig.tar.gz)
  • 使用dh_make在debian目录中生成debian conf文件
  • 正确修改控制文件,变更日志和版权。
  • 使用dpkg-buildpackage命令构建软件包。

到这里,没有问题。但是因为它是一个库,所以我需要在安装它时创建一些符号链接,这与库的SONAME有关。在这里,我的库称为libvl。因此,例如,我正在构建一个名为libvl.so.1.0的文件,因为它是第一个版本。为了做对,我想我应该创建这样的符号链接:

libvl.so -> libvl.so.1 -> libvl.so.1.0
Run Code Online (Sandbox Code Playgroud)

为此,我正在尝试使用make运行安装过程时创建那些链接。如果启动“ make install”命令,则此方法有效。但是当使用dpkg安装时,如果创建了链接则没有任何设置,我无法理解为什么。我也尝试过使用postinst脚本,但是没有任何结果。这是我的makefile下面:

DESTDIR =
LIBDIR = usr/lib

LIB = libvl.so
MAJOR = 1
MINOR = 0

CC = gcc
CC_FLAGS = -Wall -ansi -Isrc/
LD_FLAGS =
LN = ln -s

SRC = very_long.c

OBJ = $(SRC:.c=.o)

all: libvl

libvl: $(OBJ)
    $(CC) -fPIC -c $(SRC)
    $(CC) -shared -a -o $(LIBDIR)/$(LIB).$(MAJOR).$(MINOR) $(OBJ)

install:
    install -d -m 0755 -o root -g root $(DESTDIR)/$(LIBDIR)
    install -m 0755 -o root …
Run Code Online (Sandbox Code Playgroud)

debian symlink shared-libraries package

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

获取指定经纬度的 OpenStreetMap 图像

如何使用 OpenStreetMap 服务(在线服务器)以编程方式获取街道地图图像,作为可下载的图像文件,仅从经纬度值和缩放系数?

我的应用程序有一组纬度-经度值,对于每个值,我需要一个 OpenStreetMap 图表——一个图像,而不是一个网页——在街道地图上用图钉显示位置。图像需要是单个 SVG 或 PNG,以便进一步离线处理。

我如何以编程方式构造一个 URL(例如http://www.openstreetmap.org/http://www.opencyclemap.org/或类似的服务),由经纬度值和可能的缩放因子参数化,这将返回我感兴趣的地图图像,包括指定位置的图钉?

web-services geospatial openstreetmap

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

在 React 组件生命周期方法中,`this.context` 是一个空对象

为什么this.context在这个 React 组件生命周期方法中是一个空对象?

上下文在该上下文中具有正确的值Consumer。只有this.contextAPI 失败了。

const LoremContext = React.createContext({
    lorem: "ipsum",
})


class MenuItem extends React.Component {

    componentDidMount() {
        console.log(
            "In MenuItem.componentDidMount, this.context is:",
            this.context)
    }

    render() {
        console.log(
            "In MenuItem.render, this.context is:",
            this.context)
        return ( <LoremContext.Consumer>{
            (lorem) => {
                console.log("In LoremContext.Consumer, lorem is:", lorem)
                return (
                    <li>
                        { `Eat ${this.props.dish} at ${lorem}` }
                    </li>
                )
            }
        }</LoremContext.Consumer> )
    }
}

MenuItem.contextType = LoremContext

class Menu extends React.Component {
    render() {
        …
    }
} …
Run Code Online (Sandbox Code Playgroud)

reactjs

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

IE6和缓存

似乎IE6忽略了通过http头发送的任何形式的缓存失效,我尝试将Pragma设置为No Cache并将Cache Expiration设置为当前时间,但在IE6中,回击将始终拉出页面的缓存版本I我正在努力.

是否有IE6确实侦听的特定HTTP头?

caching dynamic-pages http-headers internet-explorer-6

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

如何使用mechanize库执行HEAD请求?

我知道如何用httplib做一个HEAD请求,但是我必须为这个站点使用mechanize.

基本上,我需要做的是从标题(文件名)中获取一个值而不实际下载文件.

有什么建议我怎么能做到这一点?

python mechanize http-headers

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

文件下载(IE)上的文件名损坏

我已经实现了一个简单的文件上传下载机制.当用户单击文件名时,将使用以下HTTP标头下载该文件:

HTTP/1.1 200 OK
Date: Tue, 30 Sep 2008 14:00:39 GMT
Server: Microsoft-IIS/6.0
Content-Disposition: attachment; filename=filename.doc;
Content-Type: application/octet-stream
Content-Length: 10754
Run Code Online (Sandbox Code Playgroud)

我也支持日文文件名.为此,我用这个java方法编码文件名:

private String encodeFileName(String name) throws Exception{
    String agent = request.getHeader("USER-AGENT");
    if(agent != null && agent.indexOf("MSIE") != -1){ // is IE
        StringBuffer res = new StringBuffer();
        char[] chArr = name.toCharArray();
        for(int j = 0; j < chArr.length; j++){
            if(chArr[j] < 128){ // plain ASCII char
                if (chArr[j] == '.' && j != name.lastIndexOf("."))
                    res.append("%2E");
                else
                    res.append(chArr[j]);
            }
            else{ // non-ASCII …
Run Code Online (Sandbox Code Playgroud)

internet-explorer http internationalization http-headers

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